분류 전체보기465 [MPI] 사다리꼴 공식 (trapezoidal rule) 병렬화 - 1 References An Introduction to Parallel Programming Contents Trapezoidal rule 병렬화 I/O의 처리 사다리꼴 공식 (trapezoidal rule) 이번에는 MPI를 사용하여 사다리꼴 공식(trapezoidal rule)을 병렬화해보도록 하겠습니다. 사다리꼴 공식은 적분을 근사하는 수치적분 방법인데, 적분이 나타내는 넓이를 일련의 사다리꼴들의 넓의의 합으로 근사합니다. (참고 : 위키백과) 우리는 이 사다리꼴 규칙을 사용하여 \(y = f(x)\)라는 함수에 대한 그래프 사이의 영역에 대한 넓이의 근사값을 구해볼 것입니다. 기본적인 아이디어는 x축의 내부를 n개의 동일한 서브인터벌(subinterval)로 구분합니다. 그리고, 그래프와 각 서브인.. 2021. 11. 9. [CMake] Language Requirements References Professional CMake : A Practical Guide Contents Setting The Language Standard Directly Setting The Language Standard By Feature Requirements C나 C++이 계속해서 업데이트되면서 코드에서 사용하는 C/C++ 버전을 지원하려면 컴파일러 및 링커 플래그를 이해해야합니다. 컴파일러마다 다른 플래그를 사용하지만 동일한 컴파일러와 링커를 사용하는 경우에도 플래그를 사용하여 표준 라이브러리의 다른 버전을 선택할 수 있습니다. C++11에 대한 서포트가 시작한지 얼마되지 않았을 때는 CMake에서 사용할 표준을 선택하는 직접적인 지원이 없었으므로 프로젝트에서 필요한 플래그를 스스로 해결해.. 2021. 11. 9. [MPI] Hello, MPI References An Introduction to Parallel Programming Contents MPI (Message-Passing Interface) MPI 프로그램(MPI_Init, MPI_Finalize, Communicator, MPI_Comm_size, MPI_Comm_rank) SPMD 프로그램 communication(MPI_Send, MPI_Recv, 메세지 매칭) MPI (Message-Passing Interface) MPI(메세지 인터페이스)는 분산 및 병렬 처리에서 정보의 교환에 대해 기술하는 표준입니다. MPI는 분산 메모리 시스템에서 사용할 수 있도록 프로그래밍할 수 있도록 기본적인 기능들과 문법, 프로그래밍 API에 대해 기술하고 있습니다. 메세지 패싱(messag.. 2021. 11. 8. 병렬 프로그래밍 References An Introduction to Parallel Programming (Peter Pacheco) Contents 병렬 프로그램이 필요한 이유 병렬 프로그램을 작성하는 방법 공유 메모리(shared-memory)와 분산 메모리(distributed-memory) 병렬 프로그래밍이 필요한 이유 싱글 프로세서 성능의 증가는 집적회로(intergraed circuit;IC)의 트랜지스터, 즉 전자회로의 밀집도 증가에 기인합니다. 트랜지스터의 크기가 작아질수록 트랜지스터의 속도는 증가되며, 집적회로의 전체 속도도 증가됩니다. 그러나 트랜지스터 속도의 증가는 전력 소모도 증가시킵니다. 이 전력 대부분은 열로 발산되며, 집적회로가 뜨거워지면 그 회로의 기능에 대한 신뢰성이 떨어집니다. 그러므로.. 2021. 11. 7. [CMake] Compiler and Linker 설정 References Professional CMake : A Practical Guide Contents Traget Properties Directory Properties / Command Compiler / Linker Variables 이전 게시글에서 빌드 타입과 이와 관련된 특정 컴파일러와 링커 선택에 관련하여 알아봤습니다. 2021.11.05 - [CMake] - [CMake] Build Type / Custom Build Type 이번에는 컴파일러와 링커 동작을 제어하는 기본적인 방법에 대해서 알아보겠습니다. Target Properties CMake의 속성 시스템에서 Traget 속성은 컴파일러와 링커 플래그를 제어하는 기본 메커니즘을 가지고 있습니다. 일부 속성은 임의의 플래그를 지정할 .. 2021. 11. 6. [CMake] Build Type / Custom Build Type References Professional CMake : A Practical Guide Contents Basic Build Types Common Erros Custom Build Types 빌드 타입build type(일부 IDE tool에서는 build configuration 또는 build scheme라고 함)은 컴파일러와 링커의 동작을 고수준으로 조작합니다. 이번 글에서는 빌드 타입에 대해서 알아보고, 다음에 컴파일러와 링커 옵션을 제어하는 구체적인 내용들을 살펴보도록 하겠습니다. Basic Build Type 빌드 타입은 빌드에 대한 거의 모든 것에 영향을 미칠 가능성이 있습니다. 주로 컴파일러 및 링커 동작에 직접적인 영향을 미치지만 프로젝트에 사용되는 디렉토리 구조에도 영향을 미칩니다... 2021. 11. 5. [CMake] Policy References Professional CMake : A Practical Guide Contents Policy cmake_minimum_required(), cmake_policy() Policy Scope CMake는 새로운 기능들을 도입하고, 버그를 수정하고 특정 기능의 동작을 변경하면서 단점이 개선해나가며 오랫동안 발전해왔습니다. 새로운 기능의 도입은 이전 CMake 프로젝트에서 문제를 일으킬 가능성이 낮지만, 기존 기능이 변경되는 경우 프로젝트에 문제가 생길 수 있습니다. 이러한 이유로 이전 버전과 호환성을 유지하고자 간단한 마이그레이션 방법을 제공합니다. 이러한 제어는 CMake의 policy mechanisms을 통해 수행됩니다. 일반적으로 policy는 개발자가 자주 사용하는 것은 아.. 2021. 11. 4. [CMake] Modules References Professional CMake : A Practical Guide Contents Modules include() find_package() CMakePrintHelpers, TestBigEndian CheckCSourceCompiles, CheckCXXSourceCompiles, CheckFortranSourceCompiles CheckCSourceRuns, CheckCXXSourceRuns CheckCCompilerFlag, CheckCXXCompilerFlag, CheckFortranCompilerFlag CheckSymbolExists, CheckCXXSymbolExists CheckStructHasMember, CheckPrototypeDefinition, CheckTyp.. 2021. 11. 4. [CMake] Generator Expressions References Professional CMake : A Practical Guide Contents Generator Expressions Target Details General Information CMake를 실행하면서 프로젝트의 CMakeLists.txt 파일을 읽고 프로젝트 파일들을 생성하는 것을 하나의 단일 단계로 생각할 수 있습니다. 그러나 CMakeLists.txt를 읽는 것과 빌드 파일을 생성하는 것은 전혀 다른 단계입니다. CMake가 실행되면, 먼저 소스 트리의 최상단에 존재하는 CMakeLists.txt를 읽고 처리합니다. 그리고 프로젝트의 internal representation들은 CMakeLists.txt 안의 커맨드와 함수들이 실행되면서 만들어집니다. 이 과정을 Con.. 2021. 11. 3. [CMake] Properties References Professional CMake : A Practical Guide Contents Properties General Property Commands : set_property(), get_property(), define_property() Global Properties : get_cmake_property() Directory Properties : set_directory_properties(), get_directory_property() Target Properties : set_target_properties(), get_target_property() Properties(속성)는 소스 파일이 object 파일로 컴파일되는 방법부터 빌드된 바이너리의 install 위치까.. 2021. 11. 2. 이전 1 ··· 24 25 26 27 28 29 30 ··· 47 다음