프로그래밍 모델
Programming model프로그래밍 모델은 API 또는 특정 코드 패턴에 결합된 실행 모델입니다.이 스타일에서는 실제로는 베이스 프로그래밍 언어의 실행 모델과 프로그래밍 모델의 실행 모델의 두 가지 실행 모델이 있습니다.예를 들어 Java가 기본 언어이고 Spark가 프로그래밍 모델인 Spark가 있습니다.실행은 라이브러리 콜이라고 생각되는 것을 기반으로 할 수 있습니다.다른 예로는 POSIX 스레드 라이브러리와 Hadoop의 MapReduce가 [1]있습니다.어느 경우든 프로그래밍 모델의 실행 모델은 코드가 기술된 기본 언어의 실행 모델과 다르다.예를 들어 C 프로그래밍 언어는 입력/출력 또는 스레드 동작을 위한 동작은 실행 모델에 없습니다.다만, 이러한 동작은, 통상의 C 라이브러리에의 콜이라고 생각되는 콜을 발신하는 것으로써, C 구문으로부터 기동할 수 있습니다.
프로그래밍 모델이 일반 라이브러리와 구별되는 것은 호출의 동작을 프로그램이 기술된 언어로 이해할 수 없다는 것입니다.예를 들어 POSIX 스레드라이브러리에 대한 콜 동작은 C 언어에서는 이해할 수 없습니다.그 이유는 콜이 언어의 실행 모델과 다른 실행 모델을 호출하기 때문입니다.이 외부 실행 모델의 호출은 프로그래밍 언어와 대조적으로 프로그래밍 모델의 정의 특성입니다.
병렬 컴퓨팅에서는 고성능을 실현하기 위해 실행 모델이 하드웨어의 기능을 공개해야 하는 경우가 많습니다.병렬 하드웨어의 많은 변동으로 인해 동일한 수의 병렬 실행 모델이 동시에 요구됩니다.실행 모델별로 새로운 언어를 만드는 것은 비현실적이기 때문에 API를 통해 병렬 실행 모델의 동작을 호출하는 것이 일반적입니다.따라서 프로그래밍 작업의 대부분은 병렬 언어가 아닌 병렬 프로그래밍 모델을 통해 수행됩니다.불행히도 이러한 프로그래밍 모델에 관한 용어는 실행 모델을 자극한 하드웨어의 세부 사항에 초점을 맞추는 경향이 있으며, 그러한 섬나라에서는 프로그래밍 모델이 하드웨어 [2]특징과 밀접하게 일치하는 경우에만 해당한다는 잘못된 믿음이 형성된다.
레퍼런스
- ^ IBM. "What is MapReduce". IBM. Retrieved 2020-04-19.
- ^ Barcelona Supercomputing Center. "COMP Superscalar Programming Model".