ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컴퓨팅의 역사와 소프트웨어 처리법
    IT 2021. 6. 9. 08:23
    반응형

    진정한 병렬 주의(MIMD)의 기원은 페데리코 루이지, 메나브레아 콘테, 그리고 "찰스 바비지가 발명한 분석기계의 스케치"로 거슬러 올라간다. IBM은 1954년에 진 암달이 주요 건축가 중 한 명이었던 프로젝트를 통해 IBM 704를 도입했습니다. 그것은 완전 자동 부동 지점 산술 명령을 사용하는 시장에서 사용할 수 있는 최초의 컴퓨터가 되었다. 1958년 4월, S. Gill(페란티)은 병렬 프로그래밍과 분기 및 대기의 필요성을 분석했습니다. 또한 1958년 IBM 연구원 존 콕과 다니엘 슬로닉은 수치 계산에서 병렬화 사용에 대해 처음으로 논의했습니다. 버로스 코퍼레이션은 1962년에 크로스바 스위치를 통해 최대 16개의 메모리 모듈에 액세스 하는 4 프로세서 컴퓨터인 D825를 출시했습니다. 1967년, 암달과 슬로트닉은 미국 정보처리협회 회의에서 병렬 처리의 타당성에 대한 토론을 발표했다. 이 논쟁에서 암달의 법칙은 병렬로 인해 달성할 수 있는 가속의 한계를 정의하기 위해 만들어졌습니다. 1969년, 미국 회사 하니웰은 최대 8개의 프로세서를 병렬로 실행할 수 있는 대칭 멀티 프로세서 시스템인 최초의 멀티 프로세서 시스템을 도입했습니다. 1970년 카네기 멜론 대학의 멀티 프로세서 프로젝트인 C.mmp는 "몇 프로세서 이상의 첫 번째 멀티 프로세서 중 하나"였습니다. 멀티 프로세서 연결 및 스파이 캐시가 있는 첫 번째 버스는 1984년 시냅스 N+1이었습니다. Simd 병렬 컴퓨터는 1970년대로 거슬러 올라간다. 첫 번째 SIMD 컴퓨터의 동기는 프로세서 제어 장치 게이트의 지연을 여러 지침으로 분할하는 것이었습니다. 1964년에 Slotnick 로렌스 리버 모어 국립 실험실에 대한 대규모 병렬 컴퓨터의 건설을 제안했다. 이 설계는 미국 공군의 지원을 받아 병렬 컴퓨팅을 달성하기 위한 첫 번째 노력이었습니다. 설계의 핵심은 최대 256개의 프로세서가 있는 상당히 높은 병렬성으로, 나중에 벡터 처리라고 할 수 있는 대규모 데이터 세트에서 작동할 수 있었습니다. 그러나 일리악 IV는 프로젝트의 4분의 1만이 완료되었기 때문에 "슈퍼컴퓨터 중 가장 악명 높은 컴퓨터"라고 불렸습니다. 11년이 걸렸으며, 원래 추정치의 거의 4배에 달하는 비용이 들었습니다. 1976년에 처음으로 실제 응용 프로그램을 실행할 준비가 되었을 때 크레이-1과 같은 상업용 슈퍼컴퓨터에 추월되었습니다.

    병렬 컴퓨터 프로그래밍을 위해 동시 프로그래밍 언어, 라이브러리, API 및 병렬 프로그래밍 모델이 만들어졌습니다. 일반적으로 공유, 분산 또는 공유 배포라는 기본 메모리 아키텍처에 대한 가정에 따라 클래스로 나눌 수 있습니다. 공유 메모리 프로그래밍 언어는 공유 메모리의 변수를 조작하여 통신합니다. 메시지 전달은 분산 메모리 아키텍처에 사용됩니다. POSIX 스레드와 OpenMP는 공유 메모리가 가장 널리 사용되는 API 중 두 가지이며, 메시지 전달 인터페이스(MPI)는 메시지 전달 시스템에서 가장 널리 사용되는 API입니다. 미래 가치는 프로그램의 한 부분이 미래의 프로그램의 다른 부분에 필요한 데이터를 제공 할 것을 약속 병렬 프로그램의 프로그래밍에 널리 사용된다.

    캡 entreprise 및 Pathscale은 HMPP (하이브리드 멀티 코어 병렬 프로그래밍) 정책을 OpenHMPP라는 개방형 표준으로 변환하려고 합니다. 정책 기반 OpenHMPP 프로그래밍 모델은 하드웨어 가속기에 대한 계산을 효율적으로 오프로드하고 하드웨어 메모리를 통해 데이터의 이동을 최적화하기 위한 구문을 제공합니다. OpenHMPP 지시문은 GPU와 같은 가속기 장치에서 원격 프로시저 호출(RPC) 또는 코어 집합을 설명합니다. 지시문을 사용하면 C 또는 Fortran 코드에 주석을 달아 원격 장치에 프로시저를 다운로드하고 CPU 메인 메모리와 가속기 메모리 간의 데이터 전송을 최적화하는 두 가지 기능 그룹을 설명할 수 있습니다. 컴파일러에 의한 순차적 프로그램의 자동 병렬화는 병렬 컴퓨팅의 성배입니다. 연구원에 의해 작업의 수십 년에도 불구하고, 자동 병렬화는 성공을 제한했다.

    주요 병렬 프로그래밍 언어는 명시적으로 병렬 또는 프로그래머가 컴파일러 병렬화 지시문을 제공하는 가장 부분적으로 암시적으로 유지됩니다. SISAL, 병렬 하스켈 및 (FPGA의 경우)미트리온 C와 같은 완전히 암시적 병렬 프로그래밍 언어는 거의 없습니다. 컴퓨터 시스템이 복잡해짐에 따라 오류 사이의 평균 시간은 일반적으로 감소합니다. 응용 프로그램 검사점은 컴퓨터 시스템이 응용 프로그램의 "스냅샷", 메모리 덤프와 유사한 모든 현재 리소스 할당 및 변수 상태의 레코드를 사용하여 컴퓨터가 실패할 경우 프로그램을 복원하는 데 사용할 수 있는 기술입니다. 검사점을 사용하면 프로그램이 처음부터 다시 시작할 수 있으며 처음부터 다시 시작할 수 있음을 의미합니다. 검사점은 다양한 상황에서 이점을 제공하지만 고성능 컴퓨팅에 사용되는 프로세서가 많은 고도로 병렬 시스템에서 특히 유용합니다. 병렬 컴퓨터가 점점 더 커지고 빨라짐에 따라 이전에 실행하는 데 너무 오래 걸린 문제를 해결할 수 있게 됩니다. 병렬 컴퓨팅은 생물정보학(단백질 접기 및 서열 분석)에서 경제학(금융 수학)에 이르기까지 광범위한 분야에서 사용됩니다.

Designed by Tistory.