Hi, Ian. Given the amount of times I've found answers to problems because someone posts their fix, I thought it would be criminal not to do the same.
I have a few questions regarding the difference between configurations: (1) You're using simfactory/mdb/optionlists and I'm using configs/sim/config-data/make.config.defn Is there a reason to choose one over the other? (2) Can I assume that OPENMP=yes is the same as CCTK_OPENMP_MODE=yes ? (3) Is it worth while to re-compile with "CPP_OPENMP_FLAGS = -fopenmp" and "FPP_OPENMP_FLAGS = -D_OPENMP"? Neither of the config.logs under configs/sim/config-data or under configs/sim/scratch/hwloc/hwloc-1.10.1 had anything useful except for the compile line. But this is because, when "-openmp" was passed to gcc, it made an executable named "penmp" which the configure script wasn't looking for. So there was no actual compilation error---it just couldn't find the resulting binary. That made this harder to diagnose. I am still quite the newbie when it comes to parallel-processing nomenclature and that webpage is written for someone with more CS background than I have. I don't know if this is expected from the cactus user base so I don't know if it warrants any changes to the simfactory documentation. My (hopefully short-lived) ignorance (detailed here for the world to see) tells me that node := machine. Should the correct association be node ~= motherboard and machine ~= cluster? It seems to me that faster code would occupy more cores (one process per core), not more threads/process. But it looks like I'll be wandering down to our CS department to clean up "process," "thread," and "hyperthread" :-) Much thanks for your help, On Thu, Apr 13, 2017 at 5:42 AM, Ian Hinder <[email protected]> wrote: > > On 13 Apr 2017, at 00:32, David Gore <[email protected]> wrote: > > > (I don't know if people prefer bottom-posting or top-posting, so I'm > just going with GMail's default) > > > > As usually happens, 10 minutes (ok, an hour) after I post a problem, I > find a solution. The problem was that, in > > Hi, > > Good to hear it works, and thanks for posting the solution for others to > see! > > The file Cactus/simfactory/mdb/optionlists/centos.cfg contains a > configuration for CentOS 7, which is probably the closest to RHEL 6. > Indeed, it has > > OPENMP = yes > CPP_OPENMP_FLAGS = -fopenmp > FPP_OPENMP_FLAGS = -D_OPENMP > C_OPENMP_FLAGS = -fopenmp > CXX_OPENMP_FLAGS = -fopenmp > F77_OPENMP_FLAGS = -fopenmp > F90_OPENMP_FLAGS = -fopenmp > > because it is using gcc. > > In case you didn't catch it, when the Cactus configure stage says that the > compiler cannot create executables, what it really means is that there was > an error running the compiler during autoconf, and the log of the error can > be found in > > configs/sim/config-data/config.log > > I don't remember whether it tells you this or not. > > Another option to using OpenMP is to use MPI for parallelisation, even on > a single host. I think for that you should be able to use > > ppn = 8 > max-num-threads=1 > num-threads=1 > nodes=1 > > The meaning of these variables is described at > > http://simfactory.org/info/documentation/userguide/ > processterminology.html. > > You should then be able to run using --procs 8, and parallelisation will > happen using MPI. "num_threads" is really "num_openmp_threads_per_process", > so setting it to 1 means "don't use multiple threads per process", i.e. > parallelise by creating more processes, not more threads. > > Note that static_tov has quite a small grid, so parallelisation efficiency > is probably not very good. > > -- > Ian Hinder > http://members.aei.mpg.de/ianhin > > -- David Gore, Ph.D., Lecturer in Physics Department of Physics, Computer Science and Engineering Christopher Newport University Office: 309 Luter Hall Voice: 757 594 7827
_______________________________________________ Users mailing list [email protected] http://cactuscode.org/mailman/listinfo/users
