Skip to main content

프로그래밍을 용이하게하는 멀티 코어 코딩 표준

Multicore Association은 스마트 폰, 태블릿 및 기타 임베디드 시스템에 사용되는 멀티 코어 칩에 대한 소프트웨어 작성과 관련된 복잡성을 줄이는 프로그래밍 모델 사양을 수립하고 있습니다.

협회는 완벽한 기초 API 세트 그룹의 사장 Markus Levy는 칩, 칩, 센서 및 가속기를 칩에 에너지 효율적으로 추가한다고 발표했다. 장치의 애플리케이션 성능을 향상시킵니다. 그러나 멀티 코어 칩은 프로그래머가 여러 코어로 확장 할 수있는 응용 프로그램을 작성하고 올바른 순서로 계산을 실행하여 올바른 출력을 얻을 수 있도록 올바르게 동기화해야하는 과제도 야기했습니다.

낮은 수준의 API는 일관된 운영 체제 및 특수 하드웨어에서 실행되도록 응용 프로그램을 조정할 수있는 멀티 코어 프로그래밍 모델이라고 Levy는 말합니다. Multicore Association은 커뮤니케이션 및 리소스 관리를위한 MCAPI (멀티 코어 통신 API) 및 MRAPI (멀티 코어 리소스 관리 API)를 완성했으며 가상화와 관련된 새로운 도구 및 API를 만들기위한 워킹 그룹이 있습니다. "

"많은 수혜자가 있습니다. 그러나 모든 당사자의 주요 목적은 이식성을 확립하는 것 "이라고 레비는 말했다. 일관된 프로그래밍 모델을 사용하면 여러 멀티 코어 플랫폼에서 응용 프로그램을보다 쉽게 ​​재사용 할 수 있습니다. 이 API 이전에는 대부분의 디자인이 이식성이없는 독점적 인 메커니즘을 사용했다고 Levy는 말했다. 스마트 코어는 각기 다른 기능을 제공하는 서로 다른 운영 체제를 실행하는 다중 프로세서 코어를 사용하여 설계 될 수 있다고 임베디드 소프트웨어 기술자 인 콜린 월스 (Colin Walls) 매년 약 4 억 대의 핸드셋에 탑재되는 Nucleus 실시간 운영 체제를 만드는 멘토 그래픽 (Mentor Graphics) Walls는 MCAPI가 두 코어의 소프트웨어가 통신 할 수있는 직접적인 수단을 제공한다고 말했다. 일부 장치에서는 하나의 코어가 Android 또는 Linux와 같은 OS를 실행하여 사용자 인터페이스의 대부분을 관리하고 사용자 응용 프로그램을 실행하며, 파일 및 데이터 관리 및 통신. 다른 코어는 사용자에게는 보이지 않지만 셀룰러 네트워크 연결을 설정 및 유지하고 통화를 처리하는 것과 같은 저수준 전화 활동을 관리 할 수 ​​있습니다. "MCAPI를 사용하면 내장 된 애플리케이션 코드가 MCAPI는 프로그래머가 멀티 코어 용 애플리케이션을 한 번 사용 가능하게하고 제품 라인의 여러 제품과 차세대 제품에 동일한 코드를 재사용 할 수있게 해준다 "고 전했다. 멀티 코어 및 멀티 칩 통신을위한 개발 도구와 런타임 소프트웨어를 제공하는 폴리 코어 소프트웨어 (PolyCore Software)의 CEO 인 스벤 브레머 (Sven Brehmer)는 엔지니어링 생산성을 향상시킬 수 있다고 말했다. MCAPI는 텔레콤 및 데이터 콤 인프라와 멀티미디어 장치에서 가장 많이 사용되고 있다고 브레머는 말했다 . 기타 관심 분야로는 의료 기기, 고성능 컴퓨팅 및 레이더와 같은 군용 및 항공 장비를들 수 있습니다. API를 사용하면 특정 칩의 코어 간 또는 특정 영역의 특정 영역에 대한 통신과 같은 특정 구현을위한 도메인을 구축 할 수 있습니다. 칩의 토폴로지. 이는 디자이너가 메시지의 라우팅과 보안을보다 잘 제어 할 수있게 해준다고 Levy는 말했습니다. "MCAPI 인프라의 한 측면은 노드가 프로세스, 스레드, 인스턴스가 될 수있는 통신 노드의 네트워크 사양을 포함합니다. 운영체제, 하드웨어 가속기 또는 프로세서 코어에 대한 지원을 제공 할 것 "이라고 덧붙였다.

MCAPI는 멀티 코어 칩의 전원 관리 및 가상화를 조정하는 응용 프로그램 수준의 자원 관리 기능을위한 API 인 MRAPI와 함께 작동하도록 설계되었습니다. 칩에는 동적으로 변화하는 기능과 기능이 포함되어 있으며 일부 멀티 코어 칩에서는 단일 OS가 모든 자원을 추적하고 제어하는 ​​것이 어렵다고 Levy는 말했습니다. MRAPI는 절전 상태, 장치 장애 및 하이퍼 바이저 재분할과 같은 시스템 수준의 이벤트 알림에 대한 낮은 수준의 지원을 제공합니다. 예를 들어 대칭 다중 처리 기능을 갖춘 Linux 기반 장치는 운영 환경 또는 자원이 변화했다고 Levy가 전했다. 이러한 결점을 보완하기 위해 MRAPI는 자원 공유를 관리하고 자원 가용성의 변화에 ​​대응하기위한 구현 메커니즘을 프로그래머에게 제공합니다. "MRAPI를 활용하여 시스템 개발자는 멀티 코어 프로세서의 현재 및 미래 세대에 걸쳐 확장 가능한 휴대용 응용 프로그램을 작성할 수 있으며 아키텍처, 애플리케이션, 미들웨어, 프로세서 및 시스템 개발자에게 이익이 될 것 "이라고 Levy는 말했다.이 표준화는 칩 벤더와 써드 파티 툴 제공 업체가 리소스 관리를 대신 할 수있게하여 프로그래머는 고급 애플리케이션에 집중할 수 있다고 Levy는 말했다 또한이 회사는 임베디드 가상화 제품 사용자를위한 API를 개발하여 다양한 가상화 환경에서 응용 프로그램과 미들웨어의 상호 운용성을 가능하게합니다. 그러나 더 큰 초점은 API를 이용하는 표준화 된 도구를 개발하는 데 있습니다. Levy는 멘토, 인텔, 프리 스케일, 텍사스 인스트루먼츠와 같은 새로운 API를지지하는 사람들은 모두 자신의 디버그 및 추적 도구를 개발했다고 말하면서, "도구 공급 업체의 순수한 결과는 원 스톱 샵과 같은 일은 불가능합니다. 고객이 필요로하는 모든 것을 제공 할 수있는 단일 공급 업체는 없지만 고객은 이러한 다양한 시스템을 개발하고 이해할 수 있어야합니다 "라고 Levy는 말했습니다.

OpenMP 및 OpenCL과 같은 프로그래밍 모델이지만 경쟁이 아닌 "시너지 효과"를 내기 위해 모두 설계되었습니다. Polycore의 Brehmer는 말했습니다. OpenMP API는 컴퓨터 수준의 병렬 응용 프로그램을 작성하도록 설계된 반면 OpenCL은 CPU 및 그래픽 프로세서를 포함한 멀티 코어 프로세서에서 병렬 실행을위한 프로그래밍 프레임 워크입니다.

Multicore Association 구성원에는 IBM, Samsung 및 Advanced Micro Devices도 포함됩니다.