-
Notifications
You must be signed in to change notification settings - Fork 44
NPB in HermitCore #104
Comments
I already test NPB with an older version of HermitCore and it works! In make.def you have to set F77 to x86_64-hermit-gfortran and CC to x86_64-hermit-gcc. The other flags are similar to the gcc configuration, if you want to compile NPB on Linux. Please inform me, if you have any problems to build NPB. |
I can't build the NPBs in HermitCore. 1) First Configurationa) I copied the directory NPB3.3.1-MZ in libhermit/usr. NPB3.3.1-MZ has the follow structure: NPB3.3.1-MZ-MPI b) I included the CmakeLists.txt file in NPB3.3.1-MZ. This file contains the follow sentences:
c) I modified the make.def file in libhermit/usr/NPB3.3.1-MZ/NPB3.3-MZ-OMP/config, with the follow sentences:
d) I added the follow sentence in the libhermit/CmakeLists.txt file:
e) Finally, I ran the build process of HermitCore:
2) Second Configurationa) I only modified the CmakeLists.txt file in libhermit/usr/NPB3.3.1-MZ. Now, this file contains the follow sentences:
b) I ran the build process:
Am I forget something? |
Hm, personal I would not use NPB3.3.1-MZ. I prefer NPB3.3.1, which also supports OpenMP. In
|
The NPB3.3.1-MZ doesn't work. Therefore, I tested NPB3.3.1 with
in libhermit/usr/NPB3.3.1/CmakeLists.txt, but this sentence generates the follow error message:
when I run the command "sudo make". The sintax of add_custom_target is
I also tested diferent variants of this sentence such as:
but, it doesn't work. |
If I understand it correctly, the application will be built but not installed. The makefile doesn't have an install rule. Maybe you should start with an empty rule to test, if this is the problem. Please add the end following lines to NPB's makefile. The last line contains only a
|
I added
Build NPB implies to execute |
Hm, difficult to understand. Could send me your configuration files. I will test it on my system, |
Yes, of course. These are my files: CMakeLists.txt contains the sentence build_external. CMakeLists.txt contains add_custom_target. |
Excuse me, I forgot this request. Do you still need support? |
Yes, I do. The last thing I tried was to compile the benchmarks separately, but it did not work. |
Ok, I will do it tomorrow |
Please test the version at https://gigamove.rz.rwth-aachen.de/d/id/JtGNq5LWradWdY It isn't fully integrated in our toolchain. But it works on our systems. Does it help? |
I don't know. I'm traying... |
Hello. I am traying to build NPB in HermitCore again. This time the build process begins, but it ends when performing configure step for xray. The current hierarchy of project is: HermitCore/libhermit/usr/CMakeLists.txt: this file contains the sentence:
HermitCore/libhermit/usr/NPB3.3-OMP/CMakeLists: this file contains the code:
NPB3.3-OMP also contains a makefile. What is xray for??. A simple profiler for Native Client. Can it be resolved by removing benchamarks???. |
Hm, xray is a simple profiler. You can remove it. Comment out these lines. Does it work for you? |
I commented both lines (build_external and add_dependences) in libhermit/CmakeLists.txt, but It didn't work, now I see the error message munmap_chunk() invalid pointer: I executed the command make in libhermit/usr. The folders arch and CmakeFiles are located inside the usr, they contains all .obj files linked in libhermit.a. The error message happends in libhermit/usr/CMakeFiles/hermit-bootstraps.dir
However, if I try to execute the command make inside libhermit/build, the error message is different: I don't understand, why is the error message different?. |
Do you change some other parts of the toolchain? I don't understand the error message munmap_chunk() invalid pointer. I build everything from scratch and was able to build NPB 3.3.1 (openmp version, class C) with following config file "make.def" (see below). Does it work for you?
|
I updated the HermitCore toolchain (gcc-hermit, libhermit) and I downloaded the project from repository https://github.com/hermitcore/libhermit to start from scratch, but it didn't work. This is my current setup: In libhermit/CMakeLists.txt I added the following sentence:
Then, in libhermit/usr I added the folder NPB3.3.1. It contains the folder NPB3.3-OMP and the file CMakeLists.txt. This file contains:
When I run the command make in libhermit/build, I see the following error message: There is no rule to build install target, however the file Makefile located in libhermit/usr/NPB3.3.1/NPB3.3-OMP contains the install target empty:
My config file make.def is the same as yours. The build process fails in the following sentences:
located in build.make inside the folder libhermit/build/CMakeLists/NPB3.3-OMP.dir. I tried to use install: ../bin, but it didn't work. Without the install_local_target(extra/npb) sentence, where build programs are saved??. Your setup is the same???. |
After doing several tests, I was able to advance the compilation of the NPB. Now, when I run the command make no errors ocur. However, I don't understand where the benchmarks that were compiled were. They are not in the bin or extra folder. The CMakeLists.txt file in NPB-3.3-OMP contains the install_local_targets(extra/bin) statement, but apparently the build process ignores this order. I need to add something in some makefile???. |
Hm, the cmake file is included in the main file like the OpenMP benchmarks (https://github.com/hermitcore/libhermit/blob/master/CMakeLists.txt#L177)? |
Hi Stefan I'm writing to ask you some questions about HermitCore behavior that I don't understand. I am executing a matrix multiplication algorithm on this platform and I am also measuring its execution time with the time command. I did several tests increasing the size of the input until at one point I observe that the execution time stabilizes at approximately 40, 24, 14, 7 y 3 seconds beyond number of threads. The result of each test is reflected in the following table: Cfg = CPU x Number of Threads The output in each run is correct. Please could you explain the causes of this behavior to me? Why is the execution time stable if the input size and number of threads increases? How is thread scheduling done in the library operating system? In all cases I am using a virtual machine with 1GB of memory and 4 cores, how is the distribution of threads done in the most extreme case: Is it 16 threads?. Thank you very much in avance. Greetings. |
Want to add a general question, how does openmp work in your kernel? |
Hello
I need run the NAS parallel benchmarks (NPB) in HermitCore. Is possible this?.
NPBs are implement in Fortran, the build process require run a makefile, called make.def, this file contains compilation params.
make.def generates an executable based in classes of complexity (S, A, W). Exists three classes of benchmark: BT, SP and LU, they solves diferential ecuations systems. When I run the command "make benchmark class" with the class BT, for example, it generates an executable named BT-MZ.S.x. This executable, can it run in HermitCore?. Can it build with the build process of HermitCore?.
Is there some way for solve this problem?
The text was updated successfully, but these errors were encountered: