2009-07-22 13 views
6

Per garantire la qualità in una workstation multicore (8) critica, voglio eseguire lo stesso codice in processori diversi ma non in parallelo o contemporaneamente.Esecuzione di codice Python in processori diversi

Ho bisogno di eseguirlo 8 volte, una corsa per ogni processore.

Quello che non so è come selezionare il processore che voglio.

Come può essere realizzato in Python?

+5

Penso che dovresti includere il/i sistema/i operativo/i che hai scelto come target. La pianificazione delle CPU è per lo più di competenza di Python (trascurando la chiamata al sistema operativo per fare la pianificazione, naturalmente). – Erik

+0

È su Linux Fedora. Grazie per l'osservazione! – proportional

risposta

4

In Linux con schedutils, credo usereste taskset-c X python foo.py per eseguire tale processo Python specifiche nelle CPU X (esattamente come a identificare le CPU possono variare, ma credo che i numeri, ad esempio 1, 2, 3, .. dovrebbe funzionare ovunque). Sono sicuro che le versioni Windows, BSD, ecc. Hanno comandi simili per supportare l'assegnazione diretta del processore, ma non li conosco.

3

Quale processo procede su quale nucleo è normalmente deciso dal sistema operativo. Su Linux esiste un set di task dal pacchetto schedutils per eseguire esplicitamente un programma su un processore.

Python 2.6 ha un modulo multiprocessing che accetta le funzioni python e le esegue in processi separati, probabilmente spostando ogni nuovo processo su un nucleo diverso.

Problemi correlati