기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요.
요새 나오는 AP 들을보면
대부분의 멀티코어로 이루어져있는데.
병렬처리쪽 지원이 잘되어 있는 편인가요?
멀티코어 AP 는 써본적이 없어서 몇가지 질문드립니다.
1. 컴파일러 지원
컴파일러에서 컴파일시
'이 부분은 병렬처리로 하면 성능이 향상될거야'라며
컴파일러가 일부분을 병렬처리를 하나요?
아니면 개발자가 이부분은 병렬처리해도 되겠다라며
특정코드에 표시?를 하는방식인가요?
아니면 컴파일단계에서는 병렬처리를 지원하지 않나요?
2. 리눅스 커널에서의 지원
특정 멀티코어 AP에 맞게 포팅된 커널에서
병렬처리를 지원하나요?
만약 지원한다면 컴파일 단계에서도 병렬처리를
지원해야하할거 같은데..
3. 안드로드에서의 지원
안드로이드에서 병렬처리를 지원하나요?
아니면 단순 분산처리 방식을 사용하나요?
코어가 2개인 멀티코어 AP에서 안드로이드 어플리케이션을 하나실행한다면
코어하나는 어플리케이션을 실행하고 나머지코어는 백그라운드 프로세스를 처리하는
방식으로 사용되는건가요?
쓰다보니 질문이 많네요.
부탁드립니다. (_ _)
OpenCL 라이브러리를 사용해서 Multi-core를 cl-device로 사용해서 프로세스 병렬처리를 하실수 있습니다.
http://www.browndeertechnology.com/coprthr.htm 에서 libcoprthr 라이브러리 소스가 있습니다.
받으셔서 포팅 후 사용하시기 바랍니다.
말씀하시는 병렬처리의 이미가 불명확하네요..
AP나 PC나 똑같습니다.
1. 개발자가 기본적으로는 Thread 생성해서 코딩 해야 합니다.
아니면 MPI같은 병렬처리용 lib으로 개발합니다.
2. SMP커널 씁니다.
당연히 되어야 겠죠.
3. 쓰레드별로 스케쥴링합니다. PC랑 다를게 없어요.
코어가 2개인 AP에서 어플리케이션 1개 실행해도 기본적으로 뜨는 프로세스는 10개 넘습니다.
이 10개 넘는 넘들이 2개에서 돌아갑니다. 고정해서 돌아가는 방식 아닙니다.
PC에서 어떻게 되는지 보시는게 빠르실 듯...