Steve,<div><br></div><div>Hwloc is now required for running cpusets in TORQUE, and it helps out a lot both in immediate use and in groundwork for future features.</div><div><br></div><div>Immediately hwloc gives you a better cpuset because it gives you the next core instead of the next indexed core. For example: many eight core systems have processors 0, 2, 4, and 6 next to each other and processors 1, 3,  5, and 7 next to each other. If you&#39;re running a pre-4.0 TORQUE, and you have two jobs on the node, each with 4 cores, job 1 will have 0-3 and job 2 will have 4-7. In TORQUE 4.0, job 1 will have 0, 2, 4, and 6, and job 2 will have 1, 3, 5, and 7. This should help speed up processing times for jobs (NOTE: only if you have this kind of system and a comparable job layout, I&#39;m not promising a general speed-up to everyone using cpusets). This should also allow us to properly handle hyperthreading for anyone that has it turned on and wishes to use it.</div>
<div><br></div><div>The last immediate feature is if you have SMT (simultaneous multi-threading) hardware. The mom config variable $use_smt was added. By default, the use of SMT is enabled, but you can tell your pbs_mom to ignore them (not place them in the cpuset) using by adding</div>
<div><br></div><div>$use_smt false</div><div><br></div><div>to your mom config file</div><div><br></div><div>For the future, the hwloc threads make it really easy for us to handle hardware specific requests. One of the coming features for TORQUE is to allow requests roughly similar to:</div>
<div><br></div><div>socket=2:numa=2 --with-hyperthreads</div><div><br></div><div>which would say to spread the job over 2 sockets, and across the 2 numa nodes on each socket. This is a feature we plan to add to improve support for Magny-Cours and Opteron type processors that have multiple sockets and or multiple numa nodes on the processor chip. Using hwloc makes it so we don&#39;t have to parse system files and map the indices to the sockets and/or numa nodes ourselves, we can simply use easy hwloc functions like hwloc_get_next_obj_inside_cpuset_by_type() that allow you to just move on to the next physical core or virtual core, or skip to the next socket or numa node as the case may be.</div>
<div><br></div><div>David<br><br><div class="gmail_quote">On Mon, Mar 19, 2012 at 8:47 AM, DuChene, StevenX A <span dir="ltr">&lt;<a href="mailto:stevenx.a.duchene@intel.com">stevenx.a.duchene@intel.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Also a better (more complete) explanation of what features are enabled when hwloc is used would be helpful as well.<br>

<br>
BTW, I built torque on my server without hwloc installed and then installed the resulting mom packages on my nodes. The mom daemons in that case did seem to start up just fine.<br>
--<br>
Steven DuChene<br>
<div class="im HOEnZb"><br>
-----Original Message-----<br>
From: <a href="mailto:torqueusers-bounces@supercluster.org">torqueusers-bounces@supercluster.org</a> [mailto:<a href="mailto:torqueusers-bounces@supercluster.org">torqueusers-bounces@supercluster.org</a>] On Behalf Of Craig West<br>

Sent: Sunday, March 18, 2012 10:40 PM<br>
To: Torque Users mailing list; Torque Developers mailing list<br>
</div><div class="HOEnZb"><div class="h5">Subject: Re: [torqueusers] TORQUE 4.0 Officially Announced<br>
<br>
<br>
Hi Steven,<br>
<br>
I have just begun testing Torque 4.0, as hwloc has been a long awaited<br>
feature for me.<br>
<br>
&gt; It is unclear from this announcement text where hwloc has to be installed.<br>
&gt; Is it just on the server or on the nodes only?<br>
<br>
It needs to be available on the BUILD server and the nodes. I tried to<br>
run pbs_mom on a node without the hwloc I had installed and it failed.<br>
<br>
Note: I am running hwloc 1.4 from a directory in /usr/local<br>
This was not automatically found by the TORQUE configure script, but you<br>
can specify the location using HWLOC_CFLAGS &amp; HWLOC_LIBS.<br>
It embeds the locations that you specify in the pbs_mom (and other<br>
files) but it seems you can set the LD_LIBRARY_PATH variable if it is<br>
not in the same location on the BUILD server as the compute nodes.<br>
For simplicity installing them in the same location makes sense.<br>
<br>
&gt; More documentation about this would be greatly appreciated.<br>
<br>
I agree, clearer and more detailed documentation would be useful.<br>
<br>
Cheers,<br>
Craig.<br>
_______________________________________________<br>
torqueusers mailing list<br>
<a href="mailto:torqueusers@supercluster.org">torqueusers@supercluster.org</a><br>
<a href="http://www.supercluster.org/mailman/listinfo/torqueusers" target="_blank">http://www.supercluster.org/mailman/listinfo/torqueusers</a><br>
_______________________________________________<br>
torqueusers mailing list<br>
<a href="mailto:torqueusers@supercluster.org">torqueusers@supercluster.org</a><br>
<a href="http://www.supercluster.org/mailman/listinfo/torqueusers" target="_blank">http://www.supercluster.org/mailman/listinfo/torqueusers</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>David Beer | Software Engineer</div><div>Adaptive Computing</div><br>
</div>