웹 사이트

병렬 프로그래밍 주류의 개념을 추진하기 위해서는 음악이나 게임과 같은 킬러 애플리케이션이 필요합니다. 핫 칩스 (Hot Chips)에서 마이크로 프로세서에 다중 코어를 추가하는 것은 병렬 프로그래밍을위한 중요한 기회를 창출했지만 핫 칩스 (Hot Chips) 컨퍼런스의 패널 토론에서이 개념을 주류로 밀어 넣기 위해서는 킬러 애플리케이션이 필요하다고

인텔-늑대와여우-코디, 건강 파수꾼「헬스케어PC」한배 탔다

인텔-늑대와여우-코디, 건강 파수꾼「헬스케어PC」한배 탔다
Anonim

컴퓨터와 프로그래밍 언어를 많이 개발하고 돈을 많이 벌었다고 David Patterson은 말했습니다. 캘리포니아 주 버클리 대 (University of California, Berkeley)의 과학 교수는 월요일 스탠포드 회의에서 말했다. 데스크톱 프로그램을 병렬로 작성하는 데는 거의 관심을 기울이지 않았지만 게임 및 음악과 같은 응용 프로그램은이를 바꿀 수 있습니다. 이러한 프로그램을 사용하는 사용자는 최상의 실시간 성능을 요구하므로 프로그래머는 여러 스레드 및 코어를 통해 작업을 분할하는 모델을 채택해야 할 수 있습니다. 예를 들어 새로운 형태의 병렬 처리는 PC에서 재생되는 음악의 품질을 향상시킬 수 있습니다 패터슨은 말했다.

캘리포니아 대학 버클리 (University of California, Berkeley)는 병렬 컴퓨팅 랩을 사용하여 연구원들이 응용 프로그램 사용 방법을 이해하려고 노력하고있어 코드 최적화에 도움이 될 수 있습니다. 핸드 헬드 장치 용. 한 프로젝트는 페이지 렌더링 및 구문 분석과 같은 특정 작업을 기반으로 코드를 최적화하여 데스크탑 수준의 브라우징을 핸드 헬드 장치로 가져 오는 것을 목표로합니다. 또 다른 프로젝트는 건강 정보를 더 빨리 검색 할 수 있도록 코드를 최적화하는 것입니다. 이 연구소는 Intel과 Microsoft가 주로 자금을 지원합니다.

Berkeley 연구원은 Python 및 Ruby on Rails와 같은 스크립팅 언어를 사용하여 작성된 코드 비트를 새로운 저수준 C 코드로 대체하여 병렬 처리를 도입하려고합니다. 패터슨은 수요일 인터뷰에서 음성 인식 애플리케이션에서 특정 음성 패턴을 분석하는 것과 같은 특정 작업에 중점을두고 있다고 밝혔다. 이 코드는 기계 수준의 병렬 응용 프로그램을 작성하도록 설계된 OpenMP 또는 MPI 응용 프로그램 프로그래밍 인터페이스를 사용하여 작성되었습니다. 전문가는이 고도로 전문화 된 병렬 코드를 작성해야한다고 Patterson은 말합니다. 패터슨은 인터뷰에서 파이썬과 루비 온 레일스를 사용하여 애플리케이션 개발을 더 쉽게 해주지 만 병렬 처리에 초점을 맞추지 않는 프로그래머들의 개발 시간을 줄여 준다고 말했다. 실험실에서는 저수준 기계 코드를 사용하여 특정 작업 실행이 20 배 증가하는 것으로 나타났습니다.

병렬 처리의 개념은 새로운 것이 아니며 대부분 고성능 컴퓨팅의 영역이었습니다. 낮은 수준의 병렬 처리는 항상 가능했지만 프로그래머는 소프트웨어 도구와 끊임없이 변화하는 하드웨어 환경으로 인해 어려운 작업에 직면 해 왔습니다. ""스레드는 올바르게 동기화되어야합니다. "라고 Christos Kozyrakis 교수는 말합니다. 패널 토론에 앞서 스탠포드 대학에서 컴퓨터 과학을 전공했다. 코드는 예측 가능하게 동작하고 더 많은 코어가 사용 가능 해지면 확장 될 수있는 형태로 작성되어야합니다.

컴파일러는 더 많은 시간을 사용하여 출력을 올바른 순서로 수신하도록 현명하게 처리하고 스레드를 분해 할 수 있어야합니다. Kozyrakis는. 특정 계산이 특정 순서로 실행되지 않으면 코드에 병렬 처리를 구축하려는 잘못된 시도로 인해 소프트웨어가 많이 생성 될 수 있습니다. 그것은 일반적으로 경쟁 조건이라고하는 문제입니다. 코더들은 또한 더 복잡한 병렬 처리 수준을 달성하기 위해 여러 프로그래밍 도구를 사용하는 방법을 배울 필요가 있다고 패널 위원은 말했다.

패터슨은 회의에서 "게으른 소년 방식의 프로그래밍 방식은 없다"고 말했다. 메모리 및 네트워크 지연으로 인해 데이터 처리량에 병목 현상이 발생하여 병렬 작업 실행으로 인한 성능이 저하 될 수있다. 현재 사용 가능한 많은 병렬 도구는 CPU 및 그래픽 처리 장치의 병렬 처리 기능을 사용하여 시스템 성능을 향상 시키도록 설계되었습니다.이 도구는 다른 아키텍처에 사용할 수있는 프로그래밍 도구가 많으므로 사용 가능한 모든 하드웨어를 활용하기가 어렵습니다. 애플, 인텔, 엔비디아, AMD (Advanced Micro Devices)는 금요일 출시 예정인 애플의 곧 출시 될 맥 OS X 10.6 운영체제 인 스노우 레퍼드 (Snow Leopard)에서 지원 될 병렬 프로그래밍 환경 인 OpenCL을 홍보하는 회사 중 하나이다. OpenCL은 자사의 독점적 인 DirectX 병렬 프로그래밍 도구와 CUDA 프레임 워크를 제공하는 Nvidia를 경쟁하고있는 Microsoft와 경쟁합니다. OpenCL은 하드웨어와 같은 커널 배포를 관리하는 API (응용 프로그램 프로그래밍 인터페이스)가있는 C와 유사한 프로그래밍 언어를 포함합니다. 프로세서 코어 및 기타 리소스로 사용할 수 있습니다. 패터슨은 OpenCL은 시스템의 여러 CPU 및 그래픽 처리 장치에 픽셀 처리를 분산시킴으로써 Mac OS가 비디오를 더 빨리 디코딩 할 수있게 도와 줄 것이라고 말했다. 기존의 모든 툴은 서로 다른 소프트웨어 환경을 목표로하고 있으며 서로 다른 자원을 활용한다고 패터슨은 말했다. 예를 들어, OpenCL은 GPU에서의 작업 실행과 관련이 있습니다. OpenCL과 같은 일부 모델은 GPU에 의존하는 특정 환경에만 적응하는 반면, DirectX와 같은 독점 모델은 이기종 컴퓨팅 환경에 배포하기가 어렵습니다. "[OpenCL]이 모든 아키텍처에서 채택되지는 않을 것입니다." 패터슨은 말했다. 루비 온 레일즈 (Ruby on Rails)와 같이 일반적으로 사용되는 개발 도구를 사용하여 프로그래밍 모델을 개선하는 것과 같이 다른 것들을 시도하기 위해서는 그 동안 필요하다 "고 말했다.

관객들은 병렬 처리가 패널리스트들은 대학들이 병렬 처리를 가능하게하기 위해 여러 프로그래밍 도구로 작업하는 데 신선한 접근 방식을 취하고 있다고 말했다. 수년간의 칩 개발 자금으로 정부는 관련 프로그램에 대한 자금 지원을 통해 병렬 처리에 많은 관심을 기울이고있다. Kozyrakis는 스탠포드는 ​​2012 년까지 "대중에게 병렬 응용 프로그램 개발을 실용적으로 만들기위한"실험실을 설립했다고 전했다 연구원은 인텔, AMD, IBM, 썬, HP, 엔비디아와 같은 회사와 협력하고있다. 개발자를위한 즉각적인 작업 테스트는 현대의 칩에서 실행하기 위해 기존 레거시 코드를 병렬로 변환하는 것이 될 수있다. 버클리의 패터슨 고 밝혔다. 두 회사가 자동 병렬 처리 기능을 제공하고 있지만 순차적 실행을 위해 원래 작성된 레거시 코드를 다시 작성하고 컴파일하는 것은 큰 도전이 될 수 있습니다. "

"이 분야에서 돈을 벌 수 있습니다. "패터슨은 말했다.