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

Reply via email to