2010-06-29 3 views
2

클러스터 (예 : Amazon의 말처럼)를 통해 '분기 및 바인딩'을 구현하고자합니다. 단일 CPU에 국한되지 않고 수평 확장이 가능하도록하고 싶습니다. Judith Hippold와 Gudula Runger의 "Task Pool Teams : SMP 클러스터의 불규칙 알고리즘을위한 하이브리드 프로그래밍 환경"이라는 논문이 있습니다. 그것은 기본적으로 인텔의 TBB와 같은 상향식, 작업 도용 프레임 워크입니다. 공유 메모리 대신 애드혹 네트워크를 제외하고는. 이 라이브러리를 사용할 수 있다면 로컬 TBB를 TBB 대신 사용하십시오. 불행히도 그들은 어디서나 다운로드 할 수 있도록 만들지 못했기 때문에 다른 구현체 나 유사한 라이브러리가 있습니까?MPI (또는 기타)의 작업 배포 용 라이브러리입니까?

마이크로 소프트의 작업 병렬 라이브러리는 훔칠 수있는 것과 동등한 것 같습니다.

('threadpool'이전에 'taskpool'태그를 만들려고했으나 'thread-pool'이전에 가장 많이 사용 된 변형이지만 충분한 점수가 없었습니다.) 추가할만한 가치가 있다고 생각되는 사람은 누구입니까?

편집 :

나는 아직 그것을 시도하지 않은

하지만 PEBBL (여기에서 : software.sandia.gov/trac/acro/wiki/Packages는) 정말 높은 확장 주장하고있다. "Parallel Combinatorial Optimization"2006 년 Wiley의 'Parallel Branch-and-Bound Algorithms', Crainic, Le Cun and Roucairol (2006 년)에서 인용 한 논문은 2006 년 El-Ghazali가 편집했습니다. Talbi는 내가 그것을 발견 한 곳이었으며, 나열된 다른 라이브러리가 있습니다. 일부는 더 좋을 수도 있습니다, 나는 이것을 업데이트 할 수있는 권리를 보유합니다 :). 재미있는 Google은 이러한 libs를 찾지 못했습니다. 내 인터넷 검색이 약하거나 Google 자체가 때때로 마법에 걸리지 않습니다. 내가 동기화 낮은 수준의 분산 메모리 인터페이스로 armci으로보고 그 위에 구축 제안

+0

자신과 다른 사람에게 : "병렬 및 분산 컴퓨터 시스템에서의 작업 할당 : 기초, 수학 모델 및 알고리즘 - 2010"- http://www.amazon.com/Assignment-Parallel-Distributed - 컴퓨터 시스템/dp/3639300629 – JDonner

답변

2

"클러스터를 통해"라고 말하면 분산 메모리를 의미하는 것처럼 들리지만 분산 메모리의 경우 분기 및 바인딩을 병렬 처리하는 것은 악명 높은 문제입니다. 적어도 확장 성을 보장합니다. 이 주제에 대한 정액 논문은 here으로 제공되며, here이라는 제목의 Wiley 서적에서 발췌 한 내용이 있습니다.

전역 작업 큐를 구현할 수 있기 때문에 공유 메모리 분기가보다 쉽습니다. 공유 메모리 및 메시지 전달 구현을 모두 수행하는 방법에 대한 높은 수준의 설명은 here을 참조하십시오. 그 밖의 것이 없다면, 참고 자료 섹션은 아이디어와 기존 구현에 대한 가치가있다.

+0

감사합니다. 여기에서 PEBBL을 찾았습니다. https://software.sandia.gov/trac/acro/wiki/Packages 자세한 내용은 수정 된 주제를 참조하십시오 (충분한 공간이 아님). 최근 논문에서 BTW는 노드 master -> worker를 배포하고 마스터가 병목 현상이됩니다.보다 최근의 아키텍처는 마스터 허브 작업자 (여러 계층의 허브에 해당) 또는 작업 도용 (task-stealing)을 수행합니다.이 작업은 'Task Pool Teams ...'에서 시작되었습니다. 그래서 저는이 사람이나 다른 사람들이 얼마나 잘하는지 보게 될 것입니다. 그러나 그들은 좋은 주장을합니다. – JDonner

2

한 가지 RabbitMQ 같은 공유 메시지 큐를 조사하고있다. AMQP 서버 (분산 응용 프로그램이 서로 메시지를 보낼 수 있도록 개발 된 메시징 프로토콜)입니다.