0
我想從Java調用C函數。 C函數使用openmp與for循環並行。但是,程序結束後,結果顯示只使用一個線程。所以,我想知道用JNI使用openmp是否可行。JNI與openmp
感謝
下面是我的鐺信息和生成文件的內容:
clang version 3.5.0
Target: x86_64-apple-darwin15.0.0
Thread model: posix
CC = gcc
CLANG = clang-omp
CFLAGS = -c -Wall -fPIC -std=c11
OMP = -fopenmp
LIBFLAG = -dynamiclib
INCPATH = -I/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/include -I/usr/local/Cellar/libiomp/20150701/include/libiomp -I/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/include/darwin -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers
LIBPATH = -L./ -L/usr/local/Cellar/libiomp/20150701/lib -lepanet -liomp5
all: library
library: *.o
$(CC) $(LIBFLAG) $(OMP) -o libJNIFitness.jnilib *.o
*.o: *.c
$(CC) $(OMP) $(CFLAGS) $(INCPATH) *.c
clean:
rm *.o libJNIFitness.jnilib
是的,我這樣做[cholmod式的Java(http://stackoverflow.com/questions/17046585/cholmod-in-java/30526005#30526005 )。 –
什麼操作系統,什麼編譯器,你使用什麼編譯器選項,你的硬件是什麼? –
它是OSX EI Capitan,所以編譯器是LLVM,我用clang-omp編譯C代碼。 – Juneyee