Splash 2 for Linux/x86
CaveatsAre you sure you want to use Splash 2 ?????
VerificationThe kernels are self-testing with the "-t" switch, but, of the included applications, only Ocean and fmm provide "correct.out" which you can use to verify that the program ran successfully. raytrace and volrend produce images, but I can't tell if they are the correct images. Thus, I would not recommend using anything besides Ocean and FMM unless you have good understanding of the underlying physics and graphics problems and can verify the output. If you CAN provide correct output, please contact me, and I will post your file.
ScalingPlease read the following papers regarding the scaling of Splash2. While the algorithms can be scaled to study large, modern machines, it is rarely as simple as upping the number of particles, iterations, etc...
- Scaling Application Performance on Cache-coherent Multiprocessors (ISCA99)
- Scaling Parallel Programs for Multiprocessors: Methodology and Examples (Computer 1993)
SourceHere's a version of Splash2 that I downloaded from the wayback machine: splash2.tar.gz. The gzip container seems truncated, but the files seem alright. (Update: according to Sreepathi Pai, it's just missing the file null byte).
PARMACSYou need a Parmacs implementation. Here are two...
- Nathan Tuck wrote one for a study on hyperthreading on the P4: pthread.m4.tuck
- Bastiaan Stougie includes one in his Masters thesis: pthread.m4.stougie
If you're curious about what these macros are supposed to do (and you can't track down the original book), you might try consulting the description in : tango-lite.ps
Place this file next to the c.m4.null macros, and update makefiles as appropriate to point to this.
Compilation NotesThese are my notes for compilation on a Fedora Core 3 machine.
In general, fix makefiles to use compiler options that you actually support (eg, no -Olimit or -cckr). Remove reference to mpc library and add the -lpthread.
fmm: need to rename the _Complex type. I did s/_Complex/_myComplex/ and "format" in lockedprint routine disappears. I call it my_format. need to use __DBL_DIG__ and __DBL_MAX__ instead of the non_underscore version doesn't match correct.out at all! ocean-non contig and contig: looks okay. little rounding errors radiosity: no way to check without GL. maybe with http://www.thp.uni-duisburg.de/Ygl/ waters: extra ".." in path to macros. both versions compile and run, but no way to check output barnes: no output to check result volrend: remove -ansi and the malloc junk in tifcompat to get libtiff to compile need to undef FLIP tweak user_options once to get the post-processed files and again once you've generated them. I can see the heads in the .tiff files. Does that mean it worked? raytrace: apply rt.patch (below) use libtiff from volrend comment out the BYTESWAP in rltotiff/tiff_rgba_io.c I see graphical output, but again, I don't know what to expect, so I can't tell if it worked. car requires more than 32M. Try -m64 lu,cholesky,fft,radix: no problems, all pass self-test.rt.patch