일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 티스토리챌린지
- 자율주행
- 인공지능
- 로봇
- ZED2
- ubuntu
- turtlesim
- Visual SLAM
- WSL
- GUI
- 자율탐사
- Gazebo
- Puck LITE
- Jetson
- ROS
- turtlebot3
- Simulation
- QT
- C++
- 젯슨
- GPS
- 강화학습
- RTK
- ROS2
- 아두이노
- U-blox
- SLAM
- 터틀심
- WSL2
- 오블완
- Today
- Total
직관적인느낌
OpenMP[Open Multi-Processing] 본문
OpenMP(Open Multi-Processing)는 병렬 프로그래밍을 위한 API(Application Programming Interface)입니다.
C, C++, 그리고 Fortran 언어를 위해 설계되었으며, 공유 메모리 병렬 프로그래밍을 위한 쉽고 유연한 인터페이스를 제공합니다.
OpenMP는 다음과 같은 특징을 가지고 있습니다:
1. 간편함:
OpenMP는 주로 컴파일러 지시문(directive)의 형태로 제공되므로, 프로그래머가 복잡한 병렬화 코드를 작성할 필요 없이, 간단한 지시문만으로 병렬화를 적용할 수 있습니다.
2. 유연성:
OpenMP는 루프 또는 섹션 단위로 병렬화를 적용할 수 있으며, 프로그래머가 원하는 만큼 세부적인 제어를 할 수 있습니다. 또한, 동적 스레딩을 지원하여 실행 시점에서 스레드의 수를 변경할 수 있습니다.
3. 효율성:
OpenMP는 공유 메모리 시스템에서 높은 성능을 발휘합니다.
각 스레드가 메모리를 공유하므로, 데이터의 동기화와 통신이 빠르고 효율적입니다.
이런 특징들 덕분에 OpenMP는 과학계산, 그래픽, 게임 개발 등 많은 분야에서 널리 사용되고 있습니다.
그러나, "OpenMP는 '공유 메모리' 시스템에만 적용이 가능하므로, '분산 메모리' 시스템에서는 MPI(Message Passing Interface)와 같은 다른 병렬 처리 기술을 사용해야 합니다."
- 공유메모리와 분산 메모리
https://lbj142632.tistory.com/98
- 참고
https://blog.naver.com/jetarrow82/221481370706
'공학' 카테고리의 다른 글
STL[Standard Template Library] (0) | 2024.01.10 |
---|---|
공유 메모리와 분산 메모리 (0) | 2024.01.10 |
Eigen과 Sophus (0) | 2024.01.10 |
TBB(Threading Building Blocks)와 concurrent_queue/concurrent_vector [+일반 컨테이너] (0) | 2024.01.09 |
std::mutex 와 lock/unlock (0) | 2024.01.09 |