[Gate-users] Hyper-threading performance boost for GATE computation
Porter Ian (RBV) NHS Christie Tr
Ian.Porter at christie.nhs.uk
Fri Oct 6 10:39:45 CEST 2017
Thank-you Simon and David for your helpful responses. It makes sense that hyper-threading would not be much benefit for heavy numerical work due to the lack of pauses in the threads to allow other threads to be worked on. I take the point that the Xeon CPU I have in mind is a few generations more modern than our current CPUs. The question I now need to answer is whether the SPECfp_rate2006 benchmark uses hyper-threading. If not, then I think I can safely assume the Xeon E3-1240 v6 will give us approximately twice the performance than the Core i5 CPUs we are currently using. It looks like I have some more research to do! ;-)
Regards,
-- Ian.
-----Original Message-----
From: Gate-users [mailto:gate-users-bounces at lists.opengatecollaboration.org] On Behalf Of David Boersma
Sent: 05 October 2017 21:00
To: gate-users at lists.opengatecollaboration.org
Subject: Re: [Gate-users] Hyper-threading performance boost for GATE computation
Hi,
Another data point:
When I run proton therapy related simulations here in our lab on an 8-core CPU (Xeon E5-2630V3), I find that with hyper-threading enabled (running 16 simulations in parallel) the speed per job is a bit more than 2x slower than when I disable hyperthreading (running only 8 simulations in parallel). Even when the RAM is actually large enough for holding 16 jobs.
I am using Condor for job scheduling on this machine. Its configuration file has a setting "COUNT_HYPERTHREAD_CPUS", which I set to "False".
I am not at all a computer hardware expert. But I am naively guessing that for simulations with lots of file IO (reading and/or writing for almost every event), hyperthreading maybe beneficial (while one thread on a core is waiting for IO the other can calculate), while for simulations with limited IO (no reading/writing for most events) the two threads on each core are tripping on each other's feet, somehow, competing for the resources on the core.
In my own RT simulations, the only IO happens during init (geometry, physics, calibration data) and exit (dose distribution).
David B.
Den 05/10/2017 kl. 16:42, skrev Simon Stute:
> Hi Ian,
>
> The hyper-threading is something virtual, where the idea is to
> increase the number of operations supplied to the actual processor in
> order to fill in each CPU clock as much as possible. Because without
> hyper-threading, the time required to process instructions (the bus,
> memory access, etc) may lead to some unused CPU clocks.
>
> From my experience with hyper-threading and using twice the number of
> splits for a GATE simulation as you described, the gain is about
> 1.2-1.3 and not 2. I tested it on the same procs in the same hardware
> by activating the hyper-threading or not.
>
> Also the two procs you are comparing do not have the same lithography
> nor the cache size, and both are important.
>
> Cheers
> Simon
>
> Le 05/10/2017 à 16:30, Porter Ian (RBV) NHS Christie Tr a écrit :
>> Hello All,
>> My apologies if this has been covered before. I am working on the
>> specification of a compute cluster to replace our current one which
>> is based around Core i5-2500 CPUs. I have been unable to find any
>> benchmark results for GATE/GEANT where different CPUs are compared,
>> so I have used benchmarks from spec.org - specifically
>> SPECfp_rate2006 - to try to gauge which CPUs would be best considering our budget.
>> Going on these results, a CPU such as a Xeon E3-1240 v6 appears to
>> give twice the performance as the Core i5 2500 for the same number of
>> cores and at a similar clock frequency. The difference is that the
>> Xeon has hyper-threading capability, and can run twice the number of
>> threads per core.
>> We are currently using the job splitter to split each simulation
>> into a number of jobs that matches the total number of cores on our
>> worker nodes. I assume that with hyper-threading we would split
>> simulations into twice the number of jobs and send two jobs per core
>> to each node. My question is whether I can expect roughly double the
>> performance from GATE if I use hyper-threading, or whether the
>> performance gain is likely to be much less in the real world? If I
>> want twice the performance, would it be better to aim for double the
>> number of cores instead?
>>
>> Many Thanks,
>> -- Ian.
>> --------------------------------------------
>> Ian Porter, Dept. Medical Physics,
>> Christie Hospital NHS Foundation Trust, Wilmslow Road, Manchester,
>> M20 4BX. England.
>> This e-mail and any files transmitted with it are confidential and
>> solely for the use of the intended recipient.
>> If you have received this e-mail in error you should not disseminate,
>> distribute or copy it.
>> Please notify the sender immediately and delete this e-mail from your
>> system.
>>
>> _______________________________________________
>> Gate-users mailing list
>> Gate-users at lists.opengatecollaboration.org
>> http://lists.opengatecollaboration.org/mailman/listinfo/gate-users
>
> _______________________________________________
> Gate-users mailing list
> Gate-users at lists.opengatecollaboration.org
> http://lists.opengatecollaboration.org/mailman/listinfo/gate-users
_______________________________________________
Gate-users mailing list
Gate-users at lists.opengatecollaboration.org
http://lists.opengatecollaboration.org/mailman/listinfo/gate-users
This e-mail and any files transmitted with it are confidential and solely for the use of the intended recipient.
If you have received this e-mail in error you should not disseminate, distribute or copy it.
Please notify the sender immediately and delete this e-mail from your system.
More information about the Gate-users
mailing list