Hallo,
gibt es einen Kniff, unter Linux mehrere Prozesse exakt gleichzeitig zu starten? Bislang benutze ich scripts der Art
#!/bin/sh
foobar &
foobar &
foobar &
wait
In der Theorie brauchen das Programm natuerlich immer gleich lang (von etwas Rauschen abgesehen). Nun zeigt sich aber, dass der erste Prozess bei ersten Starten verhaeltnismaessig lange braucht, der zweite dann schon richtig Spaene gibt, weil bereits cached und dann die Geschwindigkeit wieder runtergeht, weil ueberlastet bzw. die Prozesse sich um die Resourcen schlagen. Der Rechner hat auch genug Prozessoren, um alle Prozesse gleichzeitig laufen zu lassen. Mit numactl weise ich die Prozesse auch schon konkreten CPUs zu, damit das bloede Linux ja nicht erst auf den Gedanken kommt, zwei auf einen zu schicken. Hilft leider alles nix, die Prozesse starten (vermutlich) leicht versetzt, jedenfalls sind sie (sehr) unterschiedlich schnell. (Details: foo == stream und alle schwankt bei parallelen Laeufen (ohne OpenMP) um ca 30%.)
Irgendwelche Ideen?
Danke,
Gruss vom Frank.