From 42bd2673107eb2685f49910df1adb2b7a01dc0f2 Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Wed, 14 May 2025 22:46:36 +0900 Subject: [PATCH] Configure core count --- src/gmc_con.erl | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/src/gmc_con.erl b/src/gmc_con.erl index 8eadb57..608d61d 100644 --- a/src/gmc_con.erl +++ b/src/gmc_con.erl @@ -365,16 +365,12 @@ do_start_stop(#s{key = #key{id = PubKey}, network = Network}) -> end end, Miner = unicode:characters_to_binary([Fatness, Bits, "-", Type]), + Count = optimize_count(), + Instance = #{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>}, + Workers = lists:duplicate(Count, Instance), Profile = [{pubkey, PubKey}, - {workers, [#{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>}, - #{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>}, - #{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>}, - #{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>}, - #{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>}, - #{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>}, - #{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>}, - #{<<"executable">> => Miner, <<"executable_group">> => <<"gajumine">>}]}, + {workers, Workers}, {pool_admin_url, Eureka}], ok = gmc_gui:message({notice, "Starting..."}), ok = gmc_gui:message({notice, ["Miner: ", Miner]}), @@ -392,6 +388,31 @@ do_start_stop(#s{key = #key{id = PubKey}, network = Network}) -> disconnected], lists:foreach(fun gmhc_events:ensure_subscribed/1, Events). +optimize_count() -> + {Procs, Memory} = + case os:type() of + {unix, linux} -> + {processor, Cores} = hd(erlang:system_info(cpu_topology)), + P = length(Cores), + M = list_to_integer(string:trim(os:cmd("cat /proc/meminfo | grep MemTotal | awk '{print $2}'"))) * 1024, + {P, M}; + {unix, darwin} -> + P = list_to_integer(os:cmd("sysctl -n hw.physicalcpu")), + M = list_to_integer(os:cmd("sysctl -n hw.memsize")), + {P, M}; + {win32, nt} -> + P = list_to_integer(os:getenv("NUMBER_OF_PROCESSORS")), + M = list_to_integer(string:strip(lists:nth(2, string:split(os:cmd("wmic computersystem get TotalPhysicalMemory"), "\r\r\n", all)))), + {P, M} + end, + MeanMaps = Memory div (1_073_741_824 * 4), + Recommended = max(min(Procs, MeanMaps) - 1, 1), + ok = tell(info, "Physical Processors: ~p", [Procs]), + ok = tell(info, "Physical Memory: ~p", [Memory]), + ok = tell(info, "29-bit Mean Map Space: ~p", [MeanMaps]), + ok = tell(info, "Recommended Workers: ~p", [Recommended]), + Recommended. + do_gajudesk() -> ok = tell(info, "Running gajudesk"),