We need next requirements for compiling and running R^2mark.
You need C++ compiler (we use g++ 2.7.2 or egcs-2.90.29 980515 (egcs-1.0.3 release))
`mpiJava 1.2beta' has some memory leak bugs, R^2mark Source code include fixed mpiJava 1.2beta. We informed that to mpiJava developer team, so if you can use next mpiJava version, use it. However, if that is not available, use the mpiJava-1.2 included in R^2mark Source code.
Please set `mpirun' command of the mpich in your path for compiling parallel version of R2mark. The `configure' program searches `mpirun' command and may find headers and libraries for MPI. If you did not set this, configure may ask it to you. Anyway, if you do not need the parallel version, you do not need anything.
gunzip R2mark-[release number].tar.gz tar xvf R2mark-[release number].tar
We define the directory R2mark-[release number] as ${R2markHOME}.
cd ${R2markHOME} make r2mark
cd ${R2markHOME}/C++ ./configure; make
cd ${R2MARKHOME}/Java/jp/ac/tohoku/is/archi/mpi2; ./configure make
cd ${R2markHOME}/C++/sampledat/1PE/4tri; ./tes.sh
cd ${R2markHOME}/Java/jp/ac/tohoku/is/archi/mpi2/sampledat/1PE/4tri; chmod u+x ./tes.sh ./tes.sh
You can find a save.test.out file in this directory. This is ppm file of rendered image. test 1 result: You can see a Gouraud shaded square.
cd ${R2markHOME}/C++/sampledat/1PE/room16; (C++) cd ${R2markHOME}/Java/jp/ac/tohoku/is/archi/mpi2/sampledat/1PE/room16; (Java) ./tes.sh
cd ${R2markHOME}/C++/sampledat/mpi; (C++) cd ${R2markHOME}/Java/jp/ac/tohoku/is/archi/mpi2/sampledat/parallel; (Java) ./tes.sh
First, this script creates a `machines' file. This includes a list of rshable machine list. And calls `mpirun'.
When you can use the ps command or the top command, you can see the three processes named `mpi2'. One is `host' and other two processes processing Radiosity and Ray-tracing in parallel (or concurrently).
test 3 result: You can see a notebook computer in a room. This is same scene of test 2.
For executing optional test, it takes time abound as below.
The test environment is
Parallel result is very bad relative to serial one on the same scene, because this test is executed on one processor machine. If you run this program on one processor machine, task switch overhead and cache replacement overhead is very high. In Test 3, CPU time is only one minute.
This benchmark includes some scripts for benchmarking. These scripts are under ${R2markHOME}/benchscript. The directory structure is next.
${R2markHOME} --+- benchscript ----+ parallel ----+ C++ ---+---- conf | | +---- office | | +---- soda | | | + Java ---+---- conf | +---- office | +---- soda + serial ----+ C++ | + Java
I prepare,
Most easy way to run the benchmarks.
cd ${R2markHOME}/benchscript/serial; ./run_benchmarks.sh
cd ${R2markHOME}/benchscript/parallel; ./run_benchmarks.sh
This benchmark takes a long time to run. At Sun UltraII330Mhz, scene conf with accuracy under C++ version takes more than 1 day. (However, scene office with test takes only a few minutes.)