4

과학 컴퓨팅 프로젝트 (확률 론적 행주 기법 described here 일 수 있음)를 듣고 현재 조사원이 50 개 노드 클러스터에서 4 개월이 걸릴 것이라고 조사하면 조사관이 나에게 요청했습니다. 다른 옵션을 검토하십시오. 이 프로젝트는 현재 병렬 파이썬을 사용하여 4d 어레이 청크를 여러 클러스터 노드에 분배하고 처리 된 청크를 다시 함께 배치합니다.병렬 Python 코드를 클라우드로 이동

현재 작업하고있는 작업은 너무 거칠게 처리되어 있습니다 (5 초에서 10 분, 병렬 파이썬에서 시간 초과 기본값을 늘려야 함). 프로세스 속도를 2-4 (데이터를 분할하고 다시 함께 사용하는 것은 너무 오래 걸리며 병렬화되어야합니다). 대부분의 작업은 numpy 배열로 수행됩니다.

2-4 번으로 충분하지 않다고 가정하고 로컬 하드웨어에서 코드를 가져 오기로 결정했습니다. 이와 같은 높은 처리량 컴퓨팅의 경우 상용 옵션은 무엇이며 코드를 수정해야합니까?

+0

또는 암시 적으로 누가이 정보를 이미 작성했으며 어떻게 얻을 수 있습니까? – Thomas

답변

1

마음에 드는 가장 확실한 상용 옵션은 Amazon EC2와 Rackspace Cloud입니다. 나는이 두 가지를 가지고 놀았으며 Rackspace API가 조금 더 사용하기 쉽다는 것을 알았습니다.

희소식은 적은 투자 (일반적으로 $ 0.10/hr 정도)를 위해 컴퓨팅 인스턴스 (원하는 OS의 단시간 또는 장기 실행 가상 컴퓨터)를 프로토 타입하고 재생할 수 있다는 것입니다. 필요에 따라 생성하고 완료되면 클라우드로 다시 릴리스하고 사용하는 것에 대해서만 비용을 지불합니다. 예를 들어, Django 배포본에 대한 데모는 Rackspace 인스턴스 6 개를 사용하여 한 시간 정도 소요되었으며 스피커 가격은 1 달러 미만이었습니다.

사용 사례 ('높은 처리량'이 무엇을 의미하는지 정확하게 구분하지 않음)에 따라 예산 및 컴퓨팅 요구 사항과 전체 네트워크 처리량 (지불해야 할 비용)을 고려해야합니다. . 몇 가지 소규모 테스트와 간단한 스프레드 시트 계산을 통해 실제로 실용적인지 아닌지를 알려야합니다.

Rackspace Cloud와 Amazon EC2 모두를위한 Python API가 있습니다. 어느 것을 사용하든 인스턴스의 자동 배치 및 구성을 위해 Python 기반 Fabric을 사용하는 것이 좋습니다.

+0

"높은 처리량"이란 내가 여기 한 번 본 정의를 의미합니다 - http://www.cs.wisc.edu/condor/htc.html 저 대기 시간은 필요하지 않으며 언제 도착하는지는별로 신경 쓰지 않습니다. 이번 달이 아니라 다음 달이 끝나기 만하면됩니다. – Thomas

+0

좋아요, 알겠습니다. 대역폭이 많이 필요한지 확실하지 않아 예산/계획에 영향을 미칩니다. 또 다른 잠재적 인 관심사는 예약 할 수있는 인스턴스의 최대 수이며 때때로 변경됩니다. 공급자의 FAQ를 확인하는 것이 좋습니다. – JohnJ

+0

Amazon의 spot-instances는 내가 뭘 찾고 있었는지에 대해 꽤 정교하게 보이지만 "기회 주의적 코드"를 써야 할 것입니다. – Thomas

6

PiCloud에 관심이있을 수 있습니다. 나는 그것을 사용한 적이 없지만 표준 과학 라이브러리를 다루는 Enthought Python Distribution을 포함합니다.

이 경우 특정 케이스에서 작동하지만 Parallel Python 인터페이스는 꽤 일반적이라고 말하는 것은 어렵습니다. 너무 많은 변화가 필요하지 않기를 바랍니다. 어쩌면 사용자 정의 스케줄러 클래스 (PP와 동일한 인터페이스를 구현)를 작성할 수도 있습니다. 사실 그것은 많은 사람들에게 유용 할 수 있으므로 PP 포럼에서 약간의 지원을받을 수 있습니다.