Hadoop의 병렬 처리 성능을 곱하면 수 있습니다, GPU 컴퓨팅 작업, Altoros 시스템 연구의 중요 한 부담이 점점 되고있다 그리고 개발 팀 둡 + GPU의 가능성 탐구에 전념 하고있다 실제 대규모 시스템 구현에서이 문서는 그들의 연구 결과의 일부입니다.
Hadoop의 병렬 처리 기 하 급수적으로 성능을 향상 시킬 수 있습니다. 이제 문제는 어떻게 컴퓨팅 작업은 마이그레이션되지 CPU에서 GPU에? 빠르게 이론적으로, 이러한 프로세스 병렬 컴퓨팅에 최적화 된 경우 실행할 수 있습니다 50-100 배 빠른 CPU 보다 GPU에. 큰 데이터 전문가 및 PAAs, Altoros 시스템 연구 및 개발을 위한 촉매제로 팀은 일하고 둡 + GPU의 가능성 뿐만 아니라 실제 대규모 시스템의 구현 탐구 하 고이 문서는 그들의 연구 결과의 일부입니다. 저자 블라디미르 Starostenkov, 수석 연구 및 개발 엔지니어 Altoros 시스템, 데이터 집약적인 시스템 및 Hadoop 기반 응용 프로그램을 포함 하 여 복잡 한 소프트웨어 아키텍처를 구현 경험의 5 년간 있으며 또한 인공 지능, 기계 학습 알고리즘에 관심이 있습니다.
기술 상태:
년 동안, Hadoop MapReduce GPU에 적용 되는 연구 프로젝트를 많이 되었습니다. 화성 첫번째 성공적인 GPU MapReduce 프레임 워크를 될 수 있습니다. 화성 기술, 웹 데이터 (검색 및 로그)를 분석 하 고 웹 문서 처리의 성능 번 1.5-1.6 배 증가 했다. 화성 근거에 따라 많은 연구 기관 데이터 집약적인 시스템의 성능을 향상 시키기 위해 비슷한 도구를 개발 했습니다. 관련된 사례는 분자 역학, 수학적 모델링 (예: 몬테 카를로), 블록, 재무 분석, 이미지 처리, 등등에 따라 행렬 곱셈을 포함 됩니다.
그리드 컴퓨팅는 빠른 개발을 위한 보잉 시스템 및 자원 봉사 기반 미들웨어 시스템입니다. 비록 Hadoop, boinc 사용 하 여 많은 연구 프로젝트를 가속에 대 한 기초 되고있다. 예를 들어 Gpugrid 분자 시뮬레이션을 수행 하 여 건강 및 질병 상황에서 단백질의 다른 역할을 이해 하는 도움이 BOINC GPU에 분산 컴퓨팅 기반 프로젝트 이다. 의학, 물리학, 수학, 생물학, 등 수에 대부분의 BOINC 프로젝트 또한 HADOOP + GPU 기술을 사용합니다.
따라서, GPU를 사용 하 여 병렬 컴퓨팅 시스템 가속 필요 존재 합니다. 이러한 조직 GPU 슈퍼 컴퓨터에 투자 하거나 그들의 자신의 솔루션을 개발 합니다. 크레이, 같은 하드웨어 공급 업체 컴퓨터 GPU를 구성 하 고 Hadoop 설치를 발표 했다. 아마존은 또한 EMR을 (아마존 탄성 MapReduce), 사용자가 서버에 구성 된 GPU Hadoop을 사용할 수 있습니다 착수 했다.
구현할 기계는 수백만 달러의 최대 비용 하지만 고성능; 아마존 EMR은 또한 최근 몇 달 동안 프로젝트에만 사용할 수 있습니다. (2) 일부 큰 연구 프로젝트, 그것은 자신의 하드웨어에 투자 하는 비용 효과적인입니다. Hadoop 클러스터에서 GPU를 사용 하 여 컴퓨터 속도 향상 시킬 수 있습니다, 경우에 데이터 전송에 특정 성능 병목 현상이 발생할 수 있습니다. 다음은 관련 된 문제에 대 한 자세한 설명입니다.
작동 원리
데이터 처리 과정에서 하드 디스크, 램, CPU와 GPU 교환할 수에 바인딩됩니다. 다음 그림은 데이터의 전송 때 CPU와 GPU 계산 함께 수행.
그림: 데이터 처리 하는 동안 구성 요소 간의 데이터 교환
화살표 드람 (CPU + GPU 계산의 초기 단계) 화살표 B:CPU 프로세스 데이터를 하드 디스크에서 a: 데이터 (데이터 흐름: 드람-> 칩셋-> CPU) 화살표 C:GPU 프로세스 데이터 (데이터 흐름: 드람-> CHIPSET-> CPU-> 칩셋-> GPU-> GDRAM-> GPU)
어떤 작업을 완료 하는 데 필요한 시간의 총 금액에 포함 되어 있습니다.
시간 하는 데 필요한
CPU 또는 GPU에
구성 요소 간에 전송 하는 데 필요한 시간을 계산 하는
톰의 하드웨어 2012 CPU 차트에 따르면 평균 CPU 성능이 엔비디아 GPU는 100 + 3000 Gflops의 성능 범위 15와 130GFLOPS, 사이입니다. 이들은 통계 값 고 유형과 작업의 알고리즘에 따라 다릅니다. 어떤 경우에, 경우에 따라 GPU를 가속화할 수 있다 노드 5 ~ 25 배 배 빠른. 일부 개발자는 클러스터에 여러 노드가 포함 된 경우 성능은 50 ~ 200 배 배 증가할 수 있다 주장 한다. 예를 들어 Mithra 프로젝트 254 시간 성능 향상을 달성 한다.
성능 병목 상태:
그래서 데이터 전송에 GPU의 효과 무엇입니까? 서로 다른 속도로 데이터를 전송 하는 다른 유형의 하드웨어, 슈퍼 컴퓨터, GPU에 최적화 되어 고 정상적인 컴퓨터 또는 서버 데이터 전송에 많이 느려질 수 있습니다. 데이터 전송 속도 CPU와 칩 세트는 일반적으로 10 ~ 20GBps (그림에서 y 포인트), 및 GPU와 DRAM 사이 환율은 1 ~ 10GBps (x는 그림에 포인트). 비록 10GBps까지 요금은 일부 시스템 (PCI-E v3), 대부분 표준 구성 Gdram 및 DRAM 데이터 흐름 속도 1GBps. (이 좋습니다 실제 하드웨어 환경에서 실제 값을 측정 하는 수 있기 때문에 CPU 메모리 대역폭 [x 및 Y]와 [B와 C] 해당 데이터 전송 속도 약 10 배 차이 시간).
GPU는 빠른 컴퓨팅 파워를 제공 합니다, 하는 동안 데이터 전송 (x 점) GPU 메모리와 CPU 사이의 메모리 선물 성능 병목 현상. 따라서, 각 특정 프로젝트에 대 한 실제 측정 데이터의 전송 시간 (화살표 c) GPU 및 GPU 가속 저장의 타이밍에 대 한 소비. 따라서, 가장 좋은 방법은 작은 클러스터의 실제 성능에 따라 더 큰 시스템의 작동을 예상 것입니다.
데이터 전송 속도 이상적으로 매우 느린 될 수 있습니다, 때문에 GPU 당 양의 입/출력 데이터 실행 계산 수 보다 작습니다. 주의 사항: 첫째, 작업 종류, GPU의 기능을 일치 하 고 두 번째 작업을 병렬, 독립형 하위 프로세스에 Hadoop으로 분단 될 수 있다. (예: 매트릭스 곱하기) 복잡 한 수학 수식 계산, 비슷한 임의의 값의 큰 숫자의 생성 과학적 모델링 작업 또는 다른 범용 GPU 응용 프로그램이이 작업에 속한다.
사용 가능한 기술
1. Jcuda:jcuda 프로젝트 엔비디아 cuda, Jcublas, Jcusparse (매트릭스의 작업 라이브러리) 등 자바 바인딩 및 관련된 라이브러리를 제공 합니다 jcufft (일반적인 신호 자바 바인딩 처리), Jcurand (GPU 생산 라이브러리의 난수) 등등. 하지만 엔비디아 GPU에만 적용 됩니다.
2. 자바 Aparapi입니다. Aparapi 실행 시 OpenCL을 자바 바이트 코드를 변환 하 고 GPU에서 실행. 모든 HADOOP + GPU 컴퓨팅 시스템의 APARAPI과 OpenCL에 대 한 전망 가장 유망한 있습니다. Aparapi, Amdjava 연구소에 의해 개발 된 2011 년에 소스 코드를 오픈 하 고 AMD 퓨전 개발자 정상회의 공식 웹사이트에 APARAPI의 실용적인 응용 프로그램의 일부를 볼 수 있습니다. OpenCL은 오픈 소스, 크로스 플랫폼 표준 하드웨어 공급 업체의 많은 수에 의해 지원 하 고 Cpu와 GPU에 대 한 동일한 코드 베이스를 작성할 수 있습니다. 경우 없는 GPU는 기계에 OPENCL CPU를 지원 합니다.
3. GPU에 액세스 하려면 로컬 코드를 만듭니다. 복잡 한 수학 계산을 위한 GPU 네이티브 코드에 액세스 바인딩을 사용 하 여 보다 훨씬 높은 이며 비슷한 APARAPI 프레임 워크를 사용 하는 경우 시간, 짧은 솔루션을 제공 해야 하지만 커넥터. 다음, 그것의 성과로 만족 하지 않습니다, 만약 당신이 다시 작성할 수 코드의 일부 또는 전체 로컬 코드. 지역 코드 (Java 응용 프로그램인 경우) JNA 통해 GPU를 사용 하 여 Hadoop 또는 (C 언어 응용 프로그램인 경우) 스트리밍 Hadoop 만들려고 (를 사용 하 여 엔비디아 CUDA 또는 OPENCL) C 언어 API를 사용할 수 있습니다.
Gpu-hadoop 프레임 워크
Grex, 팬더를 포함 하 여 화성 후 시작 Gpu hadoop 프레임 워크를 사용자 지정할 수도 있습니다 C 미스터, GPMR, 슈 레더, STEAMMR, 및 등. 하지만 Gpu hadoop 특정 연구 프로젝트에 사용 되 고 더 이상 지원을 제공 하 고 심지어 다른 알고리즘에 따라 생물 정보학 프로젝트를 몬테 카를로 시뮬레이션 프레임 워크를 적용 하기가.
프로세서 기술도 진화 하. 소니 플레이 스테이션 4, 혁신적인 새로운 프레임 워크, Adapteva 멀티 코어 마이크로프로세서, 말리 GPU에 팔. Adapteva와 말리 GPU OpenCL 호환 됩니다.
또한 인텔 제온 피 공동 프로세서 OPENCL, 60-코어 협업 프로세서, PCI-E 표준을 지 원하는 X86 유사한를 사용 하 여 발사 되었다. 성능 배정밀도 계산에서 1TFLOPS까지 가능 하 고 에너지 소비는 300 와트만. 오늘날의 가장 빠른 슈퍼 컴퓨터, 2, 공동 프로세서를 사용합니다.
그것은 높은-성능 및 분산 컴퓨팅 분야에서 주류 될 것 이다 이러한 프레임 워크의 말 어렵다입니다. 그들은 계속 향상, 대용량 데이터 처리에 대 한 우리의 이해 변경할 수 있습니다.