J'ai écrit un programme C qui lit un jeu de données à partir d'un fichier, puis applique un algorithme d'exploration de données pour trouver les clusters et les classes dans les données. En ce moment j'essaye de réécrire ce programme séquentiel multithreaded avec PThreads et je suis débutant à une programmation parallèle et j'ai une question au sujet du nombre de fils de travail qui a lutté mon esprit:Comment déterminer le nombre optimal de threads de travail
Quelle est la meilleure pratique pour trouver le nombre de threads de travail lorsque vous faites une programmation parallèle et comment le déterminez-vous? Essayez-vous un nombre différent de threads et voir ses résultats puis déterminez ou existe-t-il une procédure pour trouver le nombre optimal de threads. Bien sûr, j'étudie cette question du point de vue de la performance.
Je ne prévoyais pas d'exécuter mon code sur HPC ou Grid. Donc, dans mon cas, je prévois d'utiliser OpenMP et PThreads. Donc, mes considérations sont uniquement les SMP. Je vois que ce n'est pas une tâche facile et l'approche actuelle que je suis en train de faire est d'estimer et de permettre à l'utilisateur de le modifier à partir du fichier de configuration si nécessaire. Mais cela ne m'a pas satisfait, alors je me suis demandé s'il existait une meilleure technique existante. – systemsfault