[erlang-questions] How to setup Erlang to run on physical cores

Vans S vans_163@REDACTED
Mon Oct 17 17:11:27 CEST 2016


> Yes, I don't use the hyperthreaded CPUs. But that was the point of the original question: how to disable hyperthreading for Erlang?> If you want better control over which cores to use, you need to use +sct, I agree.

Your right my mistake. I misread the initial question thinking it said "how to choose the physical cores erlang runs on and to not run it on hyperthreaded cores". 

    On Monday, October 17, 2016 10:55 AM, Dániel Szoboszlay <dszoboszlay@REDACTED> wrote:
 

 Yes, I don't use the hyperthreaded CPUs. But that was the point of the original question: how to disable hyperthreading for Erlang?If you want better control over which cores to use, you need to use +sct, I agree.
On Mon, 17 Oct 2016 at 16:38 Vans S <vans_163@REDACTED> wrote:

> I have 2 schedulers bound to logical cores 0 & 1, exactly as intended.

Now bind them to cpus 1 and 3.

You got bound to 0 and 1 by default.  Also erlang is not using the hyperthreaded cpus you have available.   

    On Monday, October 17, 2016 10:33 AM, Dániel Szoboszlay <dszoboszlay@REDACTED> wrote:
 

 Well, I tested, and it does work as long as you have 2 thread/core:
erl +sbt ts +SP 50:50Erlang/OTP 17 Klarna-g48fc1a0 [erts-6.4.1.5] [source-48fc1a0] [64-bit] [smp:2:2] [async-threads:10] [kernel-poll:false]
Eshell V6.4.1.5  (abort with ^G)1> erlang:system_info(cpu_topology).[{processor,[{core,[{thread,{logical,0}},                    {thread,{logical,2}}]},             {core,[{thread,{logical,1}},{thread,{logical,3}}]}]}]2> erlang:system_info(scheduler_bindings).{0,1}
I have 2 schedulers bound to logical cores 0 & 1, exactly as intended.
On Mon, 17 Oct 2016 at 16:05 Vans S <vans_163@REDACTED> wrote:

> You may both want to look at the +sct option for the erl executable: > http://erlang.org/doc/man/erl.html#+sct 

This is the right answer.

> erl +sbt ts +SP 50:50

This wont bind to the specific system cores.  It will use all cores the OS allows. 

    On Monday, October 17, 2016 9:51 AM, Fred Hebert <mononcqc@REDACTED> wrote:
 

 On 10/17, Vans S wrote:
>I am interested in this too. Only way I know of so far is to use taskset or equivalent.  Ideally Erlang should bind each scheduler to each single cpu as speced by the topology.
>
>    On Monday, October 17, 2016 9:35 AM, Tan Duong <dn.nhattan@REDACTED> wrote:
>
>
> Hi everybody,
>I recently get to experiment an Erlang program.My machine is a multicore CPUs system, which contains some physical cores (say n), each cores features hyper threads (so the maximum CPU threads are 2*n)However, I just want to experiment the program on physical cores only (n cores), not with hyperthreading.is there any mechanism to do so?
>Best Regards,Tan

You may both want to look at the +sct option for the erl executable: 
http://erlang.org/doc/man/erl.html#+sct

Regards,
Fred.


   _______________________________________________
erlang-questions mailing list
erlang-questions@REDACTED
http://erlang.org/mailman/listinfo/erlang-questions



   


   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20161017/6e503b9b/attachment.htm>


More information about the erlang-questions mailing list