top of page

Business Area

 Optimization/

Parallelization

  In computer science, program optimization or software optimization is the process of modifying a software system to make some aspect of it work more efficiently or use fewer resources. In general, a computer program may be optimized so that it executes more rapidly, or is capable of operating with less memory storage or other resources, or draw less power.

  최근 출시되는 대부분의 컴퓨터의 CPU는 2개 이상의 core로 이루어져 있습니다. 씨에스타는, 각 core에서 프로그램이 가장 효율적으로 실행되도록 소프트웨어를 조정하고, 여러 개의 core를 동시에 활용하여 컴퓨터 프로그램의 성능을 높이는 과정에 대한 경험과 지식을 가지고 있습니다.

  프로그램의 최적화는 CPU내에 존재하는 최적의 instruction 및 resource가 프로그램 실행중에 활용될 수 있도록 도와 줍니다. 특히, vector register 및 instruction이 CPU의 발전에 따라 지속적으로 확장되고 있기 때문에, 이러한 자원의 활용은 프로그램의 성능을 높이는데 중요한 역할을 하게 됩니다.

  가장 기본적인 vectorization과 더불어 cache size 및 명령어의 작동 특성을 활용하는 기법 (ex:dimensional splitting, tiling 등)도 같이 고려하면서, 최적의 성능이 발휘되도록 조정합니다.

  여러 개의 core를 가지고 있는 CPU를 적극적으로 활용하기 위해, 프로그램의 병렬화는 필수적인 과정입니다. 10년 전에 개발된 프로그램을 그대로 사용하시는 경우, 최근 출시된 CPU의 장점을 활용하기 어려운 경우가 많습니다. 이 때 프로그램의 병목부분을 병렬화하 성능이 크게 개선될 수 있습니다.

  이미 발표된 표준들(ex:OpenMP, MPI)을 활용하면, 기존 프로그램의 많은 부분을 그대로 활용하면서, 비교적 쉽게 병렬화가 가능합니다.

  씨에스타는 C/C++/Fortran으로 작성된 프로그램의 병렬화/최적화를 컨설팅하거나, 도와 드립니다.

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

TOP

bottom of page