HPC

 Optimization/

Parallelization

현재 여러 개의 코어가 탑재된 CPU를 사용하는 Multi core 시대로 접어든지 오래이며 코어 수가 계속해서 증가하고 있습니다. 많은 수의 프로세서를 사용하는 경우, 원하는 성능을 얻기 위한 프로그램의 병렬화 및 최적화는 필수 요소입니다.

 

프로그램 병렬화의 방법에는 스레드 병렬화, 프로세스 병렬화, 하이브리드 병렬화가 있습니다.

Thread Parallelism

단일 프로세스 안에서 여러 개의 스레드를 만들어 내어 서로 다른 CPU를 각 스레드에 할당합니다.

  위의 그림에서 4개의 스레드는 하나의 프로세서에서 생성되었으며, 각각의 스레드에 하나의 CPU 코어가 할당됩니다. 프로그램들은 공유 메모리 안에 있는 각 스레드 사이에서 처리되며, 따라서 컴퓨팅 resource는 thread parallelism에서 공유되어 사용됩니다. Thread parallelism의 실행 방법으로는 컴파일러와 openMP 병렬화에 의한 자동 병렬화 방법이 있습니다.

Process Parallelism

여러 개의 프로세스를 사용하며, 서로 다른 CPU를 각 스레드에 할당합니다.

  위의 그림에서는 4개의 프로세스가 사용되며, 하나의 CPU 코어가 각 프로세스에 할당됩니다. 프로그램들은 각 프로세스 내의 독립적인 메모리 공간을 사용하여 처리되며, 따라서 프로그램들은 확장된 노드 내에서 작동됩니다. Process parallelism의 실행 방법으로는 MPI 병렬화 방법이 있습니다.

Hybrid Parallelism

Process parallelism과 Thread parallelism이 결합된 병렬화 방법으로, 두 개의 layer에서 처리됩니다.

  위의 그림은 thread parallelism에 의한 두 개의 parallel과 process parallelism에 의한 두 개의 parallel을 결합한 형태로, 프로그램 구동을 위하여 4개의 CPU 코어들이 사용됩니다. 일례로 컴파일러에 의한 자동 병렬화로 MPI 프로그램을 작동시킬 때의 hybrid parallelism 방법은 MPI에 의한 process parallelism과 자동 병렬화에 의한 thread parallelism이 결합된 것입니다.

  이와 같은 병렬화 과정을 통해 여러 개의 코어를 효율적으로 사용하고, 프로그램의 성능을 극대화할 수 있습니다. 또한 프로그램 및 소프트웨어 시스템을 조정하여, 적은 resource를 사용하여 효율적으로 작업을 가능하게 하는 최적화 과정을 통해 전력 소비의 효율성 및 실행 속도를 높이고, 용량이 적은 메모리 스토리지 및 다른 resource를 이용하여서도 작업 능력을 끌어올릴 수 있도록 솔루션을 제공합니다.

  씨에스타는 이러한 병렬화/최적화를 필요에 맞게 컨설팅하고 제공하며 지금도 공공기관, 연구소, 기업, 금융 등 많은 곳에서 활용하고 있습니다.

[ 문의 ] 02-2068-8394 / info@cstarcorp.com   

TOP