카테고리 보관물: cstheory

cstheory

병렬화, 특히 문제 및 알고리즘 패턴에 대한 소개 노트 병렬 아날로그와 마찬가지로 병렬 프로그래밍에 대한 좋은

컴퓨터 과학의 기본 클래스의 병렬 아날로그와 마찬가지로 병렬 프로그래밍에 대한 좋은 소개를 제공하는 온라인 강의 노트 또는 기타 리소스를 찾고 있습니다.

나의 초점은 다음과 같습니다 : 나는 분할 및 정복, 욕심 많은 알고리즘, 동적 프로그래밍 등에 대해 이야기 할 수 있습니다.

예를 들어, 다음 각 문제에 대한 명백한 병렬 접근 방식이 다른 정 성적 행동을한다는 ​​사실을 표현하기 위해 적절한 용어를 얻고 싶습니다.

  1. 정수 배열을 모두 0으로 설정 (완전히 확장됩니다.)
  2. 정수 배열을 합산 (더 많은 스레드를 사용할수록 더 많은 오버 헤드)
  3. 배열이 주어지면 각 항목의 제품을 서로 항목과 함께 나열하십시오 (정규 이중 루프를 병렬 처리하면 실행 시간이 숫자 프로세서의 sqrt로 조정됩니다).

공유 메모리 환경이 충분하고 프로세스 간 통신은 나에게 관련이 없습니다 (사실, 나는 그것을 전혀 피하는 알고리즘에 관심이 있습니다). 또한 기술적 측면은 무시할 수 있습니다.



답변

병렬 프로그래밍에 대한 입문 서적 (온라인 자료는 알지 못함)에서 Casanova, Legrand 및 Robert의 Parallel Algorithms 를 통해이 책을 배우고 있으며 이론적 병렬 알고리즘을 시작하는 데 매우 유용합니다.

또한 SPAA’11에서는 병렬 알고리즘과 분산 컴퓨팅 학생이 알아야 할 사항과 가르쳐야 할 사항에 대한 토론이있었습니다. 병렬 및 분산 컴퓨팅에 관한커리큘럼 이니셔티브는 과정 을 찾는 것이 아니라 학부 과정에서 다루어야 할 다른 주제 목록을 찾는 데 도움이됩니다. 그런 다음 모든 특정 주제에 대한 문서를 찾는 것이 더 쉽다고 생각합니다.


답변

까다로운 세부 사항을 조사하지 않으려는 경우 Mattson, Sanders 및 Massingill의 병렬 프로그래밍 패턴 책에서 병렬 디자인 패턴에 대해 매우 잘 소개합니다 .

병렬화에 대한 일반적이고 광범위하게 적용 가능한 솔루션과 OpenMP 및 MPI에 대한 간단한 소개를 찾을 수 있습니다. 이 책은 디자인 패턴과 동시성을 소개하는 것으로 시작합니다. 그런 다음 동시성을 활용하는 방법, 알고리즘을 구성하는 방법 및 동기화 및 통신을 고려하여 알고리즘을 실제로 구현하는 방법을 설명합니다.

다시, 이것은 병렬 알고리즘에 대한 교과서가 아닙니다. 실용적이고 이론적 인 초점을 가지고 병렬 소프트웨어 엔지니어링과 엄격하게 관련된 자료를 제공하는 데 매우 효과적입니다. 따라서 귀하의 요구에 완벽하게 부합해야합니다.


답변

MPI_RUBY … 최신 안정적인 빌드를 찾아야합니다. 병렬 접두사 (스캔)를 목록에 추가하는 것이 좋습니다. 병렬 접두사를 가르치고 공간 채우기 곡선을 사용하여 모든 쌍 문제에서 캐시 효율성을 높이는 방법을 보여줍니다.


답변