Bonjour à toutes et à tous,
je travaille actuellement sur différents portage d'application multicoeurs.
L'application se veut de philosophie POSIX pour un portage cohérent.
Cependant, la norme POSIX ne concerne pas la programmation multicoeur et aucune gestion de l'affinité CPU n'est prévue.
Pire encore cette gestion diffère d'un système linux à un autre...
Exemples :
Après quelques recherches je suis tombé sur un projet de l'équipe d'Open-MPI qui développe une librairie pour rendre portable cette gestion de l'affinité : http://www.open-mpi.org/projects/hwloc/int sched_setaffinity(pid_t pid, unsigned int len, unsigned long *mask);
int sched_setaffinity (pid_t __pid, size_t __cpusetsize, const cpu_set_t *__cpuset);
int sched_setaffinity (pid_t __pid, const cpu_set_t *__mask);
Elle est même portable sur windows.
Mais elle ne gère pas VxWorks, un groupe d'utilisateurs parlaient de le porter mais il semble au vu des derniers messages en date qui remontent que cela soit un projet abandonné. Et vu les échanges c'est une charge de travail très conséquente donc je ne vais pas m'y risquer (j'entends par là que j'ai pas 6 mois devant moi pour ça...).
Auriez-vous entendu parlé d'une autre librairie pouvant répondre à mes besoins ?
En parallèle de mes recherches je réfléchi à une transformation de mes threads unix en task vxworks en impactant le minimum de choses mais ce n'est pas aisé...
Partager