Ich parallelisiere einige Arbeiten in meinem OCaml-Programm (mit parmap
), aber ich würde es vorziehen, die Anzahl der Kerne in meiner Anwendung nicht hart zu codieren. Gibt es eine Möglichkeit, die Anzahl der Kerne zur Laufzeit zu erhalten? Ich würde es vorziehen, keine weiteren Abhängigkeiten hinzuzufügen (nichts außer parmap
oder JS core
). Ich habe das Gefühl, ich bin über einige einfache Anruf in stdlib ...Wie bekomme ich die Anzahl der Kerne auf einer Maschine mit OCaml?
EDIT: es muss nicht tragbar sein. Unter Linux zu arbeiten ist gut genug.
Wenn Sie nichts anderes finden (nicht befürworten dies als ein gutes Beispiel, aber etwas, das ich schon einmal gehackt habe) können Sie immer "proc" analysieren, um es zu finden. –
Ya das wäre der Worst-Case-Szenario ... – rgrinberg
Ich würde entweder 'cpuinfo' einfach mit einer sauberen Schnittstelle (ich kenne mehrere Bibliotheken, die dies tun, aber nicht in OCaml) oder versuchen, FFI von [einer von C] (http://stackoverflow.com/questions/4586405/get-number-of-cpus-in-linux-using-c). (Ich weiß, du hast gesagt, dass du lieber die zweite Lösung vermeiden würdest, aber ich habe etwas Ähnliches für die Profilerstellung in OCaml verwendet.) Beachten Sie, dass selbst diese Frage weitgehend übereinstimmt, dass das Parsen von 'proc' nicht so schlecht ist. –