본문 바로가기

fortran6

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.
2. 논블로킹 통신, 예제(수치적분)로 배우기 이 글은 블로킹과 논블로킹에 대한 이해를 바탕으로 논블로킹 통신(Nonbloking communications)의 예제를 다뤘다. MPI 코드로 수치적분을 구현한 원본게시글을 따라가며 이해한 내용들을 기록한 문서이다. 포트란으로 병렬컴퓨팅 배우기 ←링크 II. MPI 집합통신과 수치적분 - Numerical Integration wtih MPI Collective Communications. MPI 집합통신 예제로 평범하고 하찮은(원본이 이렇게 소개한다.) 그리고 간단한 알고리즘인 수치적분법을 가져왔다. 부분적분을 각 프로세서에서 진행하고, 그 합을 다시 마스터 프로세서에서 수행하는 것으로 적분이 완료되는 알고리즘이다. 코드만 보고 알고리즘 이해가 어렵다면, 앞 포스트의 수치적분 개념설명(링크)을 참고하.. 2020. 3. 24.
1. 블로킹 통신, 예제(수치적분)로 배우기 이 글은 블로킹과 논블로킹에 대한 이해를 바탕으로 블로킹 커뮤니케이션(Bloking communications)의 예제를 다뤘다. MPI 코드로 수치적분을 구현한 원본게시글을 따라가며 이해한 내용들을 기록한 문서이다. 포트란으로 MPI 배우기 I MPI 블로킹 커뮤니케이션과 수치적분 - Numerical Integration wtih MPI Blocking Communications MPI 블로킹 커뮤니케이션을 예제로 평범하고 하찮은(원본이 이렇게 소개한다.) 그리고 간단한 알고리즘인 수치적분법을 가져왔다. 평범하고 하찮으며 간단한 알고리즘이라하더라도 필자와 같은 사람은 모를 수 있기에 간단한 설명을 하겠다. 이미 훤히 알고있다면 I.2 로 바로넘어가자. I.1 수치적분 어떤 식 혹은 데이터를 적분하는데.. 2020. 3. 19.
포트란으로 MPI 배우기 ■ 알아두면 좋은 기본 개념들 새롭게 배우는 내용, 등을 계속해서 포스트 할 예정이다. 1. Concurrency vs. Parallelism 2. Data parallelism vs. Task parallelism 3. MPI란? ■ Fortran 으로 배우는 MPI 기초 아래 목록은 링크1, 링크2를 재구성하였으며, Fortran을 이용해 MPI를 사용하는데 필요한 기본적인 설명을 다루고 있다. 포트란에 대한 이해 및 병렬컴퓨팅에 대한 이해가 필요하다고 생각된다. 하지만 숙련자가 아니더라도 필요한 개념들이 함께 설명되어 있으므로 어려움은 없을 것으로 생각된다. 1. 블로킹 통신, 예제(수치적분)로 배우기 2. 논블로킹 통신, 예제(수치적분)로 배우기 3. 집합 통신, 예제(수치적분)로 배우기 4. 집.. 2020. 3. 19.
Doxygen, 소스코드 분석 툴 - 구조도 쉽게 그리기 소스코드 분석/문서 출력 툴, 독시젠(Doxygen) 설치 및 사용방법에 대한 게시글입니다. ■ Doxygen, 독시젠 소스코드 분석 툴 독시젠은 코드 상에 적힌 주석들을 정리하여 문서를 만들어내는 프로그램이다. C ++ 소스에서 문서를 생성하는 표준 도구이지만 널리 사용되는 다른 프로그래밍 언어(C, Objective-C, C#, PHP, Java, Python, IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D)도 지원한다. 코드를 작성 시 자세한 주석(독시젠에 맞는 주석)을 기입하면, 후에 따로 문서를 만들 필요 없이 주석을 기반으로 독시젠이 자동으로 문서를 만들어 준다. 따라서 따로.. 2020. 3. 12.
1. 효율적인 배열데이터 참조 본 게시글은 원본1, 원본2 를 따라가며 이해한 내용들을 기록한 문서이다. 코드 최적화 관련 글 목록 ■ 과학계산에서의 코드 최적화 Fortran 및 C는 과학계산용 프로그램을 작성할때 자주 사용되는 언어이다. 계산속도를 높이기 위해서는 데이터의 저장방법이나, 반복계산 등의 세부 사항을 이해하고 최적화 시켜야한다. 몇 가지 일반적인 효율성 문제를 해결할수 있지만, Donald E. Knuth (1974)의 말을 항상 명심해야 한다. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. 프로그램을 최적화도 적기에 해야한는 말이다. 섣불리 했다가 오히려.. 2020. 3. 12.