임베디드 프로그래밍시 보드의 CPU를 최대한 활용하는 방법이 따로 있나요?

biokk의 이미지

임베디드 프로그래밍을 하고 있는데요
요즘 임베디드의 CPU에는 core의 갯수가 많이 들어있는데요

임베디드에서 프로그램을 실행시키면 CPU에서 자동적으로 각 core에 균등하게 일을 시키게 되는건가요?
아니면 프로그래머가 코드로 지정을 해야 하는건지?

예를들어 엑시노스에는 4개의 core가 들어가있는데 무거운 프로세스가 돌아갈시 균등적으로 4개의 core가 동작하도록
하는 방법따로 있는건지 궁금합니다. 프로세스의 성능을 최대한 높이기위해서

klara의 이미지

멀티스레딩을 해야죠.

biokk의 이미지

pthread로 부분부분나눠서 스레드 돌리고 있는데요 효율을 더 높이고 싶어서요

klara의 이미지

코어만큼 스레드를 돌리면 됩니다. 단, 병렬화가 안되는 알고리즘을 스레드로 쪼개봤자 동기화하는 오버해드만 증가할 뿐 도움은 안됩니다.

biokk의 이미지

엑시노스4412가 코어가 4개 인데

소스상에서 pthread를 4개를 돌리면 4개의 코어에서 나눠서 동작을 하게 되나요?

klara의 이미지

네. 운영체제가 알아서 배분해줍니다.

biokk의 이미지

답변감사드립니다ㅎㅎ