Retour d'expérience concours Acceler'8

La nouvelle édition du concours acceler'8 a pris fin il y'a un peu plus d'un mois. Contrairement au concours précédent, nous n'avons pas publié d'article.

Il faudrait que nous le fassions à l'occasion. C'etait une part intéressante du concours précédent.

Les contraintes de la vie courante reprennent vite leur place. Il m'a fallu un peu de temps pour me décider d'écrire ce message.


Image_SSD


Cet édition a été un événement intense. Contrairement à l'édition précédente, nous avons dû travailler sur un problème reconnu.
Un gros travail de recherche à effectuer. Ce fut loin d'être facile, mais au combien passionnant.

Nous sommes partis finalement sur une simple implémentation de l'algorithme de Kadan 2D pour rechercher les coordonnées du tableau maximum à l'intérieur d'un tableau contenant des valeurs négatives et positives.

Cette fois ci, nous ne découvrions plus la programmation parallèle. Nous avons décidé de nous lancer dans le C++ et d'exploiter la librairie Intel Threading Block.

Nous avons à première vue était agréablement surpris. Nous avions trouvé dans cette librairie un excellent compromis entre la puissance et la souplesse de configuration des threads.
Ce concours fut vraiment l'occasion de découvrir ce produit. Je ne saurai que en recommander l'usage.

Nous avons commis une erreur. Mon binome a perdu pratiquement un week end à chercher à améliorer les performances d'une section de code qui en faite répondait totalement à nos exigences.

Au final, le goulet d'étranglement de notre application se trouvait à la lecture du fichier.

Nous nous sommes rendus compte de ça, trop tard malheureusement, grace à l'outil Intel Vtune. Nous avons découvert trop tard que nous pouvions l'utiliser sur la MTL.
Donc un simple regret, ne pas avoir eu accès à cet outil plus facilement. Même sur la MTL, c'etait délicat et relativement fastidieux de l'utiliser.


Intel Vtune



Donc au cours de cette édition, nous avons découvert l'écosystème proposé par Intel que nous ne connaissions que de nom. La dernière fois, la découverte de la programmation parallèle avait pris tout notre temps.
Face au problème que nous avons rencontré,c'est certain que avec ces outils, nous l'aurions facilement contourné. Ils sont beaucoup plus simples à utiliser que je le pensais à l'origine. Au final, quelques clics et nous avions la vue complète de l'exécution de notre application. J'imagine vraiment l'intéret pour l'optimisation de systèmes plus complexes.

Je profite de ce poste pour soumettre une idée pour la prochaine edition.
Nous aurions aimé disposer d'une machine virtuelle avec tous les outils d'Intel installés pour la durée du concours. Ca nous aurait simplifié la vie et poussé à les découvrir.
Je suis certain qu'il nous reste encore beaucoup à en apprendre.

Nous avons beaucoup apprécié l'ouverture à l'international. Ca donnait une dimension et un enjeu différent.
C'etait impressionnant la communauté de développeurs qui a été rassemblés et l'engouement sur les forums anglais.
Nous avons également beaucoup apprécié l'entraide qui reignait et le partage (notamment les generateurs de matrice). C'est grace à certaines de ces contributions que nous avons réussi à utiliser Intel Vtune, sinon nous serions totalement passés à coté.

Cette fois ci, avec un code non optimisé pour la lecture du fichier, nous avons terminé 23 ème.
Même si c'est honorable, il ne nous reste plus qu'à mieux faire lors de la prochaine édition.
Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.