2012-09-29 4 views
2

저는 어플리케이션에 쉽게 임베드 할 수있는 분산 컴퓨팅 플랫폼을 찾고 있습니다.휴대용 그리드 엔진 플랫폼

필자는 MPI (및 그 구현의 일부)를 조사했지만 각 작업에 대한 실행 파일을 생성하는 것을 보았으며 mpirun을 사용하여 시작했습니다. 나는 그것을 제외하지 않고 단지 애플리케이션에 임베드되기를 바랄 뿐이다.

SO 사용자는 그러한 프레임 워크 (알맞은 오픈 소스)를 알고 있습니까? 또한, 내 마음을 채우기 위해 일부 사용 샘플이 좋을 것입니다.

가능한 경우 솔루션을 배치 할 LAN의 스테이션이 이기종이기 때문에 크로스 플랫폼 솔루션에 관심이 있습니다.

모든 제안 사항 및 특히 코드 예제는 높이 평가됩니다.

+1

ZeroMQ, AMQP 또는 Cilk를 확인 했습니까? – adelbertc

+0

@adelbertc 답변을 게시해야합니다. 너는 확실히 보상받을 것이다. 부디! :) – INS

+1

분산 응용 프로그램의 서로 다른 구성 요소 (예 : 노드간에 교환해야하는 데이터의 양)가 얼마나 밀접하게 결합되어 있습니까? BOINC 및/또는 GRID 구현을 살펴볼 수도 있지만 지원 인프라 (아이덴티티 서비스, 스케줄러, 브로커, 데이터베이스 등)를 많이 필요로하며, 당황스러운 병렬 문제에만 적합합니다. –

답변

3

MPI (AMQP, ZeroMQ, Cilk 및 액터)를 제외하고 네 가지 시스템이 있습니다.

AMQP는 중앙 메시지 브로커를 사용하여 메시지를 처리 ​​/ 배포하는 시스템 간 통신을 위해 메시지 전달을 사용합니다. 일부 구현은 수신자에게 적절한 전달을 보장하지만 느려집니다 (TCP와 유사). 일부 구현은 화재 및 잊어 버려서 양보 된 배달을 허용하지 않지만 더 빠릅니다 (UDP와 유사). 참고 AMQP는 구현이 아닌 프로토콜입니다. 널리 사용되는 구현에는 ActiveMQRabbitMQ이 포함됩니다.

ZeroMQ은 AMQP에서 중앙 메시지 브로커를 뺀 것과 조금 비슷합니다. 그것은 기본적으로 내가 생각하는 액터스 스타일입니다. 더 프로그래밍적인 곳에서는 시스템을 철저히 설계 할 수 있습니다. 중앙 집중식 중개인이 아닌 중앙 집중식으로 분산되어 있으며 벤치 마크 결과 AMQP 구현보다 훨씬 빠른 것으로 나타났습니다.

Cilk은 C/C++에서 작동하도록 설계된 MIT의 잘 지원되는 프로젝트라는 점 외에는 많은 경험이 없습니다.

액터는 Erlang에서 대중화 된 로컬/분산 동시성 (가장 최근에는 Akka 프로젝트 (스칼라, Java))을 돕는 추상화입니다. 내가 알고있는 C++ 호환 버전은 Theron, Actor-CPP 및 libcppa입니다. 그러나 원격 액터를 지원하는 개발자가 누구인지는 잘 모르겠습니다.

+0

아주 좋은 시작점을 제공하기 때문에 최선의 대답으로 선택 – INS

+1

Clik은 공유 메모리 머신 (SMP 및 NUMA)에서만 실행되는 스레드 프로그래밍 및 실행 파일을위한 언어입니다. OP가 원하는 컨텍스트에서 분산 컴퓨팅에는 적합하지 않습니다. –

0

나는 Hazelcast이 그런 종류의 일이라고 생각합니다. 임베디드 분산 컴퓨팅. 그러나 그것은 Java가 아니라 C입니다. Java에서 C를 호출 할 수 있습니다.