2010-11-20 7 views
0

OpenMP 기술을 통해 병렬 처리를 수행해야하는 Java 프로젝트가 있습니다. 즉, 어떻게 든 C/C++과 Java 사이에 브리지를 만들어야합니다. 지금까지 나는 자바에서 C/C++ 코드를 통합하기 위해 JNI를 사용하는 것에 대해 들었지만 JaMP를 대신 사용하도록 제안 받았다. 이러한 기술/프레임 워크에 대해 많이 알지 못하므로 사용하기가 덜 쉽고 일반적으로 Java 코드에서 OpenMP를 어떻게 구현할 수 있습니까? OpenMP를 사용하지 않고 Java 스레드 만 사용하여 동일한 기능을 수행 할 수 있습니까? 나는이 영역에서 초보자이므로 절대적으로 도움이된다.Java 코드에서 OpenMP를 어떻게 사용할 수 있습니까?

힌트 :이 프로젝트는 서버와 클라이언트 간의 상호 작용을 하나의 코어에 "넣고"다른 코어에 효과적인 그래픽 처리를 "넣는"협업 그래픽 편집기를 만드는 것입니다.

+0

OpenMP를 사용해야합니까? 왜 병렬 처리를위한 Java 기반 API/기술을 사용하지 않습니까? –

답변

5

프로젝트에 대한 간략하고 약간 혼란스러운 설명에서 OpenMP를 전혀 사용할 필요가 없습니다. 당신이하고 싶은 모든 것은 동시 프로그래밍을위한 좋은 (충분한) 기능을 가진 자바 내에서 전적으로 수행 될 수 있습니다.

OpenMP는 완전히 다른 유형의 '동시'프로그램 용으로 설계되었습니다. 실제로는 병렬 프로그램 용입니다. 그것의 핵심은 프로세서간에 루프 반복을 퍼뜨리는 것입니다. 이것은 당신의 문제에 적합하지 않습니다.

Java와 OpenMP를 사용해야한다고 들었다면 반드시해야한다고 생각합니다. 그렇다면 JaMP와 함께하십시오. 자바 + JNI + C/C+++ OpenMp의 경로에서 누군가가 당신의 머리에 총을 들고있을 때만.

+0

답변 해 주셔서 감사합니다. Java + JNI + C/C+++ OpenMp 사용에있어 어려움이 무엇인지 말해 줄 수 있습니까? 당신은 그것이 불필요한 것인지 아니면 진정한 고통인지 말하고 있습니까? – twentynine

+0

반면에 JaMP에서 약간의 경험이 있다면, 학습을 시작하기에 좋은 출발점을 가르쳐 주시겠습니까? Linux 전용입니까? – twentynine

+0

@twentynine - Java + JNI + C/C+++ OpenMP는 목적에 따라 불필요한 것처럼 보입니다. JNI, C/C++ 및 OpenGL에 익숙한 사람의 인상을주지 않습니다. C++과 OpenMP - 당신이 그들을 통합하려고 할 때 동시에 3 가지 모두를 배우려고 노력합니다. 당신 자신에게 그렇게 할 수 있습니까? 아니요, JaMP에 대한 경험이 없으므로 JOMP를 사용해 본 적이 있지만 JaMP는 최신 버전으로 안정적입니다. –

0

Futures 또한 프로젝트를 찾을 수 있습니다. 많은 전통적인 프로그래머가 작업을 병렬 처리하는 데 사용되지 않는다고 생각합니다.

관련 문제