Engineer60 개념-3: MPI란? 포트란으로 병렬컴퓨팅 배우기 ←링크 ■ Message Passing ________________________ MPI (Message Passing Interface)를 이해하기에 앞서, 기본 개념이 되는 메시지 전달(Message Passing)이 뭔지부터 알아야 한다. 메시지 전달이란 정보를 동일한 주소공간을 공유하지 않더라도, 프로세서 간 데이터를 주고받는 통신을하므로 동기화된 작업을 할수 있도록하는 방법이다. 그러니 컴퓨터들이 네트워크에 연결되어있는 상황과 같은 여러자원을 동시에 사용하는 상황에 유용하겠다. 어떤 프로세서에서 타 컴퓨터의 메모리에 직접 통신하는게 아니라, 메시지라는 간접적인 방법을 통해 통신하는 것이다. 음, 그림으로 설명하자면 이런 느낌이다. 프로세서1 에서 어떤 메시지를 보내.. 2020. 3. 24. 개념-2 : Data parallelism vs. Task parallelism 본 포스트에서는 4가지* 중 프로그래밍 관점에서 다룰 수 있는 Data parallelism과 Task parallelism에 대해서 다룬다. *병렬화는 Bit parallelism과 Instruction parallelism 그리고 Data parallelism과 Task parallelism로 4가지로 나뉜다. Data Parallelism은 다수의 자료들을 다수의 수행 주체(Processor)가 나누어 병렬적으로 처리하는 방법이다. 플린의 분류법(Flynn’s taxonomy)은 병렬적으로 수행되는 명령의 수와, 데이터 간의 관계를 정리한 분류로 이해하는데 도움이 된다. 일반적으로 SIMD(Single Instruction Multiple Data)나 MIMD(Multiple Instruction .. 2020. 3. 24. 개념-1 : Concurrency vs. Parallelism Concurrency는 프로그램의 성질이고 parallelism은 기계의 성질이다. (Concurrenty is a property of the program and prallel execution is a property of the machine.) 병렬컴퓨팅이란, 하나의 문제를 여러개의 컴퓨팅 자원*을 활용하는 계산법이다. 먼저 병렬에 대한 정확한 이해를 위해 Concurrency**와 Parallelism**개념을 생각해 보자. *여러개의 코어 또는 연산 노드 등 **Concurrency : 병행성, 동시성, 동시실행 ***Parallelism : 병렬성, 평행성, 평행실행 Rob Pike의 강연에 따르면, Concurrency는 일반적으로 용어 프로세스의 의미) 함께 작동하기 위해 독립적인 과정.. 2020. 3. 24. 6. 유도데이터타입2(STRUCT), 예제로 배우기 MPI 튜토리얼을 제공하는 원본게시글을 따라가며 이해한 내용들을 기록한 문서이다. 포트란으로 병렬컴퓨팅 배우기 ←링크 VI MPI 유도데이터타입 _____________________ - Derived Data Type. 코딩을 하다보면, 데이터를 읽어 올때 내장 된 데이터 타입 외의 데이터 구조를 사용하면 편한 경우가 있다. 예를 들어 1~100을 1~10, 10 단위로 나눠야하는 상황(1~10, ... , 91~100)을 생각해 보자. 이런경우 루프를 통해 정수를 하나씩 읽어오기에는 다소 비효율적이다. 그보다 정수 10개짜리 리스트 형식을 정의해 한번에 10개씩 읽어오면 코드는 훨씬 간결하해지고 가독성이 좋아질 수 있다. 데이터 구조를 지정해주는 기법이 MPI 표준에도 존재한다. MPI 기본 데이터 .. 2020. 3. 24. 5. 유도데이터타입(CONTIGUOUS), 예제로 배우기 MPI 튜토리얼을 제공하는 원본게시글을 따라가며 이해한 내용들을 기록한 문서이다. 포트란으로 병렬컴퓨팅 배우기 ←링크 V MPI 유도데이터타입 _____________________ - Derived Data Type. 코딩을 하다보면, 데이터를 읽어 올때 내장 된 데이터 타입 외의 데이터 구조를 사용하면 편한 경우가 있다. 예를 들어 1~100을 1~10, 10 단위로 나눠야하는 상황(1~10, ... , 91~100)을 생각해 보자. 이런경우 루프를 통해 정수를 하나씩 읽어오기에는 다소 비효율적이다. 그보다 정수 10개짜리 리스트 형식을 정의해 한번에 10개씩 읽어오면 코드는 훨씬 간결하해지고 가독성이 좋아질 수 있다. 데이터 구조를 지정해주는 기법이 MPI 표준에도 존재한다. MPI 기본 데이터 유.. 2020. 3. 24. 4. 집합통신-2, 예제(수치적분)로 배우기 이 글은 점대점 통신(블로킹과 논블로킹)에 대한 이해를 바탕으로 집합 통신(Collective communication)의 예제를 다뤘다. MPI 코드로 수치적분을 구현한 원본게시글을 따라가며 이해한 내용들을 기록한 문서이다. 포트란으로 병렬컴퓨팅 배우기 ←링크 IV MPI 집합통신과 수치적분 - Numerical Integration wtih MPI Collective Communications. MPI 집합통신 예제로 평범하고 하찮은(원본이 이렇게 소개한다.) 그리고 간단한 알고리즘인 수치적분법을 가져왔다. 부분적분을 각 프로세서에서 진행하고, 그 합을 다시 마스터 프로세서에서 수행하는 것으로 적분이 완료되는 알고리즘이다. 코드만 보고 알고리즘 이해가 어렵다면, 앞 포스트의 수치적분 개념설명(링크)을.. 2020. 3. 24. 이전 1 ··· 5 6 7 8 9 10 다음