Gilles,

Sorry, I do not have any more details about NERSC’s usage.

Scott


> On Mar 24, 2016, at 9:49 AM, Gilles Gouaillardet 
> <gilles.gouaillar...@gmail.com> wrote:
> 
> Scott,
> 
> out of curiosity ...
> 
> generally speaking, and when HT is more efficient, how is it used ?
> - flat MPI, with one task per thread
> - Hybrid MPI+OpenMP, a task is bound to a core or socket, but never to a 
> thread
> 
> Cheers,
> 
> Gilles
> 
> On Thursday, March 24, 2016, Atchley, Scott <atchle...@ornl.gov> wrote:
> Hi Aurélien,
> 
> I have said the same thing to many users over the years. Our colleagues at 
> NERSC, however, have found that 20% of their codes work better when using HT. 
> Some codes benefit from SMT2 (i.e. HT) and even SMT4 (available on Power8) in 
> order to provide enough latency hiding of memory accesses.
> 
> As with everything in computer science, the answer is “It depends”. Try with 
> and without for each new generation of hardware.
> 
> Scott
> 
> > On Mar 23, 2016, at 4:32 PM, Aurélien Bouteiller <boute...@icl.utk.edu> 
> > wrote:
> >
> > To add to what Ralf said, you probably do not want to use Hyper Threads for 
> > HPC workloads, as that generally results in very poor performance (as you 
> > noticed). Set the number of slots to the number of real cores (not HT), 
> > that would yield optimal results 95% of the time.
> >
> > Aurélien
> >
> > --
> > Aurélien Bouteiller, Ph.D. ~~ https://icl.cs.utk.edu/~bouteill/
> >
> >> Le 23 mars 2016 à 16:24, Ralph Castain <r...@open-mpi.org> a écrit :
> >>
> >> “Slots” are an abstraction commonly used by schedulers as a way of 
> >> indicating how many processes are allowed to run on a given node. It has 
> >> nothing to do with hardware, either cores or HTs.
> >>
> >> MPI programmers frequently like to bind a process to one or more hardware 
> >> assets (cores or HTs). Thus, you will see confusion in the community where 
> >> people mix the term “slot” with “cores” or “cpus”. This is unfortunate as 
> >> it the terms really do mean very different things.
> >>
> >> In OMPI, we chose to try and “help” the user by not requiring them to 
> >> specify detailed info in a hostfile. So if you don’t specify the number of 
> >> “slots” for a given node, we will sense the number of cores on that node 
> >> and set the slots to match that number. This best matches user 
> >> expectations today.
> >>
> >> If you do specify the number of slots, then we use that to guide the 
> >> desired number of processes assigned to each node. We then bind each of 
> >> those processes according to the user-provided guidance.
> >>
> >> HTH
> >> Ralph
> >>
> >>> On Mar 23, 2016, at 9:35 AM, Federico Reghenzani 
> >>> <federico1.reghenz...@mail.polimi.it> wrote:
> >>>
> >>> Ok, I've investigated further today, it seems "--map-by hwthread" does 
> >>> not remove the problem. However, if I specified in the hostfile "node0 
> >>> slots=32" it runs really slower than specifying only "node0". In both 
> >>> cases I run mpirun with -np 32. So I'm quite sure I didn't understand 
> >>> what slots are.
> >>>
> >>> __
> >>> Federico Reghenzani
> >>> M.Eng. Student @ Politecnico di Milano
> >>> Computer Science and Engineering
> >>>
> >>>
> >>>
> >>> 2016-03-22 18:56 GMT+01:00 Federico Reghenzani 
> >>> <federico1.reghenz...@mail.polimi.it>:
> >>> Hi guys,
> >>>
> >>> I'm really confused about slots in resource allocation: I thought that 
> >>> slots are the number of processes spawnable in a certain node, so it 
> >>> should correspond to the number of Processing Elements of the node. For 
> >>> example, on each of my nodes I have 2 processors, total 16 cores with 
> >>> hyperthreading, so a total of 32 processing elements per node (i.e. 32 hw 
> >>> threads). However, considering a single node, passing in the hostfile 32 
> >>> slots and requesting "-np 32" results is a performance degradation of 20x 
> >>> slower than using only "-np 16". The problem disappears specifing 
> >>> --map-by hwthread.
> >>>
> >>> Investigating on the problem I found these counterintuitive things:
> >>> - here is stated "slots are Open MPI's representation of how many 
> >>> processors are available"
> >>> - here is stated "Slots indicate how many processes can potentially 
> >>> execute on a node. For best performance, the number of slots may be 
> >>> chosen to be the number of cores on the node or the number of processor 
> >>> sockets"
> >>> - I tried to remove the slots information from the hostfile, so according 
> >>> to this should be interpreted as "1", but it spawns anyway 32 processes
> >>> - I'm not sure what --map-by and --rank-by do
> >>>
> >>> In custom RAS we are developing, what we have to send to mpirun? The 
> >>> number of processor sockets, the number of cores or the number of 
> >>> hwthread available? How --map-by and --rank-by affect the spawn policy?
> >>>
> >>>
> >>> Thank you!
> >>>
> >>>
> >>> OFFTOPIC: is someone going to EuroMPI 2016 in September? We will be there 
> >>> to present our migration technique.
> >>>
> >>>
> >>> Cheers,
> >>> Federico
> >>>
> >>> __
> >>> Federico Reghenzani
> >>> M.Eng. Student @ Politecnico di Milano
> >>> Computer Science and Engineering
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> devel mailing list
> >>> de...@open-mpi.org
> >>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> >>> Link to this post: 
> >>> http://www.open-mpi.org/community/lists/devel/2016/03/18723.php
> >>
> >> _______________________________________________
> >> devel mailing list
> >> de...@open-mpi.org
> >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> >> Link to this post: 
> >> http://www.open-mpi.org/community/lists/devel/2016/03/18724.php
> >
> > _______________________________________________
> > devel mailing list
> > de...@open-mpi.org
> > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> > Link to this post: 
> > http://www.open-mpi.org/community/lists/devel/2016/03/18725.php
> 
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post: 
> http://www.open-mpi.org/community/lists/devel/2016/03/18726.php
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post: 
> http://www.open-mpi.org/community/lists/devel/2016/03/18727.php

Reply via email to