나는 68 코어와 4 개의 하이퍼 스레드/코어를 가진 Knights Landing 노드에서 프로그래밍 중입니다. 나는 하이브리드 MPI/OpenMP 응용 프로그램을 개발 중입니다. 내 질문에 4 개의 하이퍼 스레드가 OpenMP 스레드로 사용되도록 의도되었거나 어떻게 사용할 수 있습니까?Knights Landing의 사용 가능한 스레드
export OMP_NUM_THREADS=4
mpirun -np 68 ./app
아마 문제가 특정 MPI에 대한 스레드가 아니라는 것이다 :
export OMP_NUM_THREADS=1
mpirun -np 68 ./app
훨씬 더 빠르게 나는이 방식을 사용하는 경우에 비해 실행 : 나는 다음과 같은 방식을 사용하여 내 프로그램을 실행하면 근처에 있습니다. 그러나, 어떻게 해야할지 모르겠다.
요약하면 OpenMP 스레드로 4 개의 하이퍼 스레드/코어를 사용할 수 있습니까?
감사합니다.
대다수의 응용 프로그램에서는 각 코어에서 MPI 등급을 실행하는 동안 너무 많은 스레드를 실행하지 않아도됩니다. 인텔 MPI의 기본값은 스레드를 로컬에 배치하는 것이지만, OpenMP가 2 또는 4 코어를 사용하여 단일 MPI 순위에서 이득을 표시하는지 확인한 다음 순위 및 스레드 수 조합을 시도하십시오 . – tim18
친 화성 설정 방법에 대한 세부 사항은 MPI 구현에 따라 다르지만 KNL을 대상으로하는 MPI에는 해당 기능이 포함되어야합니다. – tim18
코어 당 하나 이상의 쓰레드를 사용하는 어플리케이션이 모든 코어가 사용되기 전에 효과적으로 피크 아웃 될지 여부를 말할만큼 충분한 경험이 없습니다. knc에서는 mpi가 코어 메시징을 유지하고 다른 운영 OS 및 mpi를 유지할 수 있습니다. – tim18