Hallo Michael,
die Frage, auf wieviele Threads die Aufgabe verteilt werden soll, ist so allgemein nicht zu beantworten, und die optimale Anzahl lässt sich wahrscheinlich auch nur durch Tests ermitteln. Denn auf der einen Seite kannst du mit mehr Threads die Arbeit besser auf die vorhandenen CPUs bzw. Kerne verteilen, andererseits müssen die Threads auch verwaltet werden. U.A. müssen die Ergebnisse ja auch wieder eingesammelt werden. Gefühlsmäßig würde ich nicht mehr Threads nehmen, als CPU-Kerne vorliegen.
Auf dieser Seite kannst du die Threadzahl einstellen und in der Browserkonsole die CPU-Zeiten sehen.
In einer anderen Antwort hast du von >1000 Workern geschrieben. Wenn sich dein Problem auf so viele Threads verteilen lässt, und wenn du keine Double Precision Numerik brauchst, wäre evtl. das Rechnen auf der Grafikkarte etwas für dich. Ich habe von der oben verlinkten Seite auch eine GPU-Version erstellt.
Gruß
Jürgen