Le processus PPart fonctionne en mode maître/esclave.
L'analyseur constitue le maître, et les tâches de synthèse sont
réalisées par des processus esclaves exécutant SIS. La syntaxe
de PPart est la suivante :
ppart -f pscript
pscript contient la liste de commandes à exécuter.
La distribution des tâches est basée sur PVM [],
un ensemble de
routines permettant l'exécution sur réseau hétérogène de
stations de travail de processus distribués. L'utilisateur
spécifie au départ le nombre et le nom des processeurs disponibles
pour réaliser la synthèse des circuits, en y incluant la machine
exécutant le maître PPart. Chacune des machines exécutera un
processus esclave SIS. L'algorithme fonctionne de la
façon suivante.
En plus du maître, un esclave (démon) SIS est lancé en début de synthèse sur chacune des machines, et attend des commandes de synthèse à exécuter. Le maître PPart exécute un algorithme de répartition de charge tournant sur une liste de tâches à exécuter qu'il stocke. A chaque fois qu'un esclave SIS est libre, il effectue une demande de travail au maître, qui lui envoie une tâche constituée d'une commande SIS à réaliser. L'algorithme de distribution termine lorsque tous les travaux à exécuter en parallèle ont été réalisés. Le fait de lancer un démon SIS par machine permet d'éviter de relancer SIS sur chaque machine à chaque fois que un travail doit être réalisé par le processeur associé. L'algorithme tournant, associé à une mesure de la rapidité des processeurs (soit définie de manière externe, soit mesurée par un test, cf. commande speed) permet d'équilibrer la charge de manière raisonnable, si les tâches de synthèse à réaliser sont assez fines, ou si le nombre de tâches est élevé par rapport au nombre de processeurs, les plus rapides d'entre eux exécutant le plus de tâches. Par contre si la puissance des machines est très hétérogène, et que le nombre de tâches à réaliser avoisinne celui des processeurs, les machines les plus rapides resteront inoccupées le temps que les machines les plus lentes aient terminé leur exécution. Il n'existe pas de mécanisme de migration de tâches pour transférer une tâche d'un processeur peu performant à une autre machine plus efficace.