ABOUT ME

-

  • 병렬식 컴퓨터가 가지는 특징
    IT 2021. 6. 5. 00:45
    반응형

    프로그램의 병렬화로 달성할 수 있는 최대 가속입니다. 프로그램의 순차적인 부분이 런타임의 10%에 걸쳐 있는 경우 추가 프로세서 수에 관계없이 10× 이상의 가속을 얻을 수 있습니다. 이렇게 하면 병렬 실행 단위를 더 추가하는 유용성에 대한 상한이 있습니다. 순차적 제한으로 인해 작업을 분할할 수 없는 경우 증가된 노력의 적용은 일정에 영향을 미치지 않습니다. 아이의 임신은 아무리 많은 여성이 할당되더라도 9개월이 걸립니다.

    구스타프슨의 법칙은 암달의 법칙과 밀접한 관련이 있는 컴퓨팅의 또 다른 법칙입니다. 두 법률 모두 프로그램의 순차적인 부분의 작동 시간이 프로세서 수와 무관하다고 가정합니다. Amdahl의 법칙은 전체 문제가 고정된 크기라고 가정하므로 병렬로 수행해야 할 총작업량도 프로세서 수와 무관하며 Gustafson의 법칙은 병렬로 수행할 작업의 총량이 프로세서 수와 선형적으로 다양하다고 가정합니다.

    데이터 종속성을 이해하는 것은 병렬 알고리즘 구현의 기본입니다. 체인의 이전 계산에 종속된 계산을 순서대로 실행해야 하기 때문에 가장 긴 종속 계산 체인(중요한 경로라고 함)보다 더 빠르게 실행할 수 있는 프로그램은 없습니다. 그러나 대부분의 알고리즘은 종속 계산의 긴 체인으로만 구성되지 않습니다. 일반적으로 독립적으로 계산을 병렬로 실행할 수 있는 기회가 있습니다.

    병렬 프로그램의 하위 작업을 스레드라고 하기도 합니다. 일부 병렬 컴퓨팅 아키텍처는 스레드라고 하는 더 작고 가벼운 버전의 스레드를 사용하는 반면 다른 아키텍처는 프로세스라고 하는 더 큰 버전을 사용합니다. 그러나 "스레드"는 일반적으로 하위 작업에 대한 일반 용어로 허용됩니다. 스레드는 종종 스레드 간에 공유되는 일부 변수를 업데이트해야 하는 경우가 많습니다. 두 프로그램 간의 지침은 순서대로 얽혀있을 수 있습니다. 개발자는 뮤텍스를 제공하기 위해 잠금을 사용해야 합니다. 잠금은 스레드가 변수를 제어하고 변수가 잠금 해제될 때까지 다른 스레드가 변수를 읽거나 작성하지 못하도록 하는 프로그래밍 언어 구조입니다. 잠금을 유지하는 스레드는 일부 변수에 대한 단독 액세스가 필요한 프로그램의 섹션인 중요한 섹션을 자유롭게 실행하고 완료되면 데이터의 잠금을 해제합니다. 따라서 프로그램의 올바른 실행을 보장하기 위해 이전 프로그램은 잠금을 사용하여 다시 작성할 수 있습니다. 프로그램의 올바른 실행을 보장하기 위해 충돌이 필요하지만 프로그램의 속도를 크게 늦출 수 있습니다. 비원자 잠금장치를 사용하여 여러 변수를 잠그면 프로그램이 상호 교착 상태에 도달할 가능성이 있습니다. 원자 잠금은 여러 변수를 한 번에 잠그거나, 그들 모두를 잠글 수 없는 경우, 그들 중 어느 것도 잠겨 있지 않습니다. 두 개의 스레드가 있고 각 스레드가 비원자 잠금을 사용하여 동일한 두 변수를 잠가야 하는 경우 한 스레드가 그중 하나를 잠그고 다른 스레드가 두 번째 변수를 잠글 수 있습니다. 이러한 경우 상호 잠금이 발생하여 실행을 완료할 수 있는 스레드가 없습니다.

    많은 병렬 프로그램을 동기화하여 하위 작업을 수행해야 합니다. 이를 위해서는 장벽을 사용해야 합니다. 장벽은 일반적으로 잠금에 의해 구현됩니다. 잠금이 없고 대기가 없는 알고리즘으로 알려진 알고리즘 클래스는 잠금 및 장벽 사용을 피합니다. 그러나 이 방법은 일반적으로 구현하기 어렵고 적절하게 설계된 데이터 구조가 필요합니다. 모든 병렬화가 가속도를 포함하지는 않습니다. 일반적으로 작업이 점점 더 많은 스레드로 분할됨에 따라 이러한 스레드는 서로 통신하는 데 소요되는 시간의 일부가 증가합니다. 결국 통신 오버헤드는 문제를 해결하는데 걸리는 시간을 지배하고, 추가 병렬화는 워크로드를 더 많은 스레드 간에 분할하여 완료하는 데 필요한 시간을 증가시킵니다. 이를 병렬 감속이라고 합니다. 응용 프로그램은 종종 하위 작업이 서로 동기화하거나 통신하는 빈도에 따라 순위가 매겨지는 경우가 많습니다. 응용 프로그램은 하위 작업이 초당 여러 번 통신해야하는 경우 미세 한 병렬성을 표시합니다. 그들은 초당 여러 번 통신하지 않는 경우 거친 곡물 병렬로 간주됩니다. 그들은 결코 또는 거의 통신할 필요가 없는 경우 당황 병렬을 실시합니다. 부끄러운 병렬 응용 프로그램은 병렬화하는 가장 쉬운 것으로 간주됩니다.

    'IT' 카테고리의 다른 글

Designed by Tistory.