컴퓨터 과학의 기본 클래스의 병렬 아날로그와 마찬가지로 병렬 프로그래밍에 대한 좋은 소개를 제공하는 온라인 강의 노트 또는 기타 리소스를 찾고 있습니다.
나의 초점은 다음과 같습니다 : 나는 분할 및 정복, 욕심 많은 알고리즘, 동적 프로그래밍 등에 대해 이야기 할 수 있습니다.
예를 들어, 다음 각 문제에 대한 명백한 병렬 접근 방식이 다른 정 성적 행동을한다는 사실을 표현하기 위해 적절한 용어를 얻고 싶습니다.
- 정수 배열을 모두 0으로 설정 (완전히 확장됩니다.)
- 정수 배열을 합산 (더 많은 스레드를 사용할수록 더 많은 오버 헤드)
- 배열이 주어지면 각 항목의 제품을 서로 항목과 함께 나열하십시오 (정규 이중 루프를 병렬 처리하면 실행 시간이 숫자 프로세서의 sqrt로 조정됩니다).
공유 메모리 환경이 충분하고 프로세스 간 통신은 나에게 관련이 없습니다 (사실, 나는 그것을 전혀 피하는 알고리즘에 관심이 있습니다). 또한 기술적 측면은 무시할 수 있습니다.
답변
병렬 프로그래밍에 대한 입문 서적 (온라인 자료는 알지 못함)에서 Casanova, Legrand 및 Robert의 Parallel Algorithms 를 통해이 책을 배우고 있으며 이론적 병렬 알고리즘을 시작하는 데 매우 유용합니다.
또한 SPAA’11에서는 병렬 알고리즘과 분산 컴퓨팅 학생이 알아야 할 사항과 가르쳐야 할 사항에 대한 토론이있었습니다. 병렬 및 분산 컴퓨팅에 관한 이 커리큘럼 이니셔티브는 과정 을 찾는 것이 아니라 학부 과정에서 다루어야 할 다른 주제 목록을 찾는 데 도움이됩니다. 그런 다음 모든 특정 주제에 대한 문서를 찾는 것이 더 쉽다고 생각합니다.
답변
까다로운 세부 사항을 조사하지 않으려는 경우 Mattson, Sanders 및 Massingill의 병렬 프로그래밍 패턴 책에서 병렬 디자인 패턴에 대해 매우 잘 소개합니다 .
병렬화에 대한 일반적이고 광범위하게 적용 가능한 솔루션과 OpenMP 및 MPI에 대한 간단한 소개를 찾을 수 있습니다. 이 책은 디자인 패턴과 동시성을 소개하는 것으로 시작합니다. 그런 다음 동시성을 활용하는 방법, 알고리즘을 구성하는 방법 및 동기화 및 통신을 고려하여 알고리즘을 실제로 구현하는 방법을 설명합니다.
다시, 이것은 병렬 알고리즘에 대한 교과서가 아닙니다. 실용적이고 이론적 인 초점을 가지고 병렬 소프트웨어 엔지니어링과 엄격하게 관련된 자료를 제공하는 데 매우 효과적입니다. 따라서 귀하의 요구에 완벽하게 부합해야합니다.
답변
MPI_RUBY … 최신 안정적인 빌드를 찾아야합니다. 병렬 접두사 (스캔)를 목록에 추가하는 것이 좋습니다. 병렬 접두사를 가르치고 공간 채우기 곡선을 사용하여 모든 쌍 문제에서 캐시 효율성을 높이는 방법을 보여줍니다.