De this paper: Évitez inutilement des algorithmes sérialisation: algorithmes tels que les générateurs de nombres aléatoires qui doivent passer une graine au prochain générateur appel serialize l'algorithme inutilement si le nombre de fois que le générateur sera appelé à l'intérieur un thread ne peut pas être prédit avec précision. Ces algorithmes doivent être remplacés par des versions plus distribuées. Q: Quelqu'un peut-il expliquer "sérialiser l'algorithme inutilement si le nombre de fois que le générateur sera appelé dans un thread ne peut pas être prédit avec précision." En ce qui concerne le nombre aléatoire génération, nous devons passer une graine. Ainsi, comment peut-on éviter la sérialisation?pratiques de programmation automatique amicale de parallélisation
1
A
Répondre
1
Si vous avez un RNG qui dépend de sa valeur précédente (plus) et vous écrivez comme ceci:
r = Random.new();
for(int i=0; i<100*usersInput; i++)
r.rand();
}
Il ne peut pas être automatiquement parallélisé même par un compilateur intelligent. Cependant, si vous écrivez comme ceci:
for(int i=0; i<usersInput; i++) {
r = Random.new();
[for(int j=0; j<100; j++) {
r.rand();
}] fork
}
Un très intelligent compilateur peut faire fonctionner le programme usersInput-nombre-de-threads, chacun ne doit exécuter 100 itérations au lieu de usersInput * 100.
Questions connexes
- 1. parallélisation automatique
- 2. Stratégies pour la parallélisation automatique
- 3. Bonnes pratiques de programmation/bonnes pratiques de programmation
- 4. Bonnes pratiques de programmation
- 5. C, pgcc - parallélisation automatique « non dénombrable »
- 6. Livres sur les bonnes pratiques de programmation
- 7. désactivation de la programmation automatique?
- 8. Parallélisation de os.walk()
- 9. Parallélisation BLAKE
- 10. Problème OpenMP et de parallélisation
- 11. OpenMP C algorithme de parallélisation
- 12. parallélisation L2S Entité de récupération
- 13. Parallélisation de nombreuses requêtes GET
- 14. Normes de codage et meilleures pratiques de programmation pour JavaScript
- 15. Des algorithmes de contrôle des tâches pratiques de programmation?
- 16. qu'est-ce qu'un "langage de programmation automatique"
- 17. Meilleures pratiques pour les traites d'enregistrement automatique?
- 18. Meilleures pratiques de programmation iOS - Aide pour les casse-tête
- 19. Antivirus et conflit d'accès aux fichiers: bonnes pratiques de programmation?
- 20. Défilement automatique des onglets - Programmation
- 21. URL Expression régulière amicale
- 22. parallélisation d'un bitmap
- 23. .htaccess, paramètres url amicale
- 24. Regex amicale URL
- 25. php - analyser url amicale
- 26. Parallélisation de la boucle en cython
- 27. Parallélisation de certains liens LINQ vers XML
- 28. Perte de performance due à la parallélisation
- 29. page de recherche avec l'URL amicale
- 30. url amicale et chaîne de requête