Dans le cadre de mon travail de développeur HPC, je devais faire un comparatif de performance d'I/O parallèles sur différents clusters sous Linux.
Premier test basique, utilisation de "pread/pwrite". Mais impossible d'avoir le fichier avec les bonnes permissions et la bonne taille. Pourtant le code semble correct, création du fichier par le premier rang, écriture parallèle après une barrière par tous les rangs.
Deux jours plus tard, je me décide à tester le retour d'erreur de "pwrite", et me rends enfin compte que ce n'est pas bon (retour -1) et que
errno
est à 9… Effectivement, je n'avais :
- pas ré-ouvert le bon fichier,
- même pas créé le fichier avec les bons paramètres (oublié de placer les permissions dans
create()
)
PEBKAC.