Printed by Tremblay Guy nov 24, 12 10:04 erreurs−typiques−prive.txt Page 1/6 BONUS ===== Execution avec 32 threads, 2048 coefficients − PIGA − PIGC − PST Temps 105 110 100 samedi novembre 24, 2012 Acceleration 4.4 4.1 4.4 1/6 Printed by Tremblay Guy nov 24, 12 10:04 erreurs−typiques−prive.txt Page 2/6 Quelques erreurs frequentes ============================ ** Graphes d’acceleration: Preferable de comparer PIGA, PIGC et PST sur un seul meme graphe, avec divers nombre de threads, quitte a avoir un graphe pour chaque taille de polynome. 2/6 samedi novembre 24, 2012 Printed by Tremblay Guy nov 24, 12 10:04 erreurs−typiques−prive.txt Page 3/6 ** Style: Initialisation inutile: Polynome p = allouerPolynome( n ); p^ = ([n] 0); for [i = 1 to n] { p^[i] = coefficient(p1, p2, i) } samedi novembre 24, 2012 3/6 Printed by Tremblay Guy nov 24, 12 10:04 erreurs−typiques−prive.txt Page 4/6 ** Style Procedure vs. fonction avec couplage fort vs. faible procedure calculerCoefficient( int i, Polynome p1, Polynome p2, ref Polynome p ) { p^[i] = 0; int expMin = max( 1, i−ub(p2^)+1 ); int expMax = min( i, ub(p1^) ); for [k = expMin to expMax] { p^[i] += p1^[k] * p2^[i−k+1]; } } PIF: ==== co [i = 1 to n] calculerCoefficient( i, p1, p2, p ) oc Erreurs: − Couplage trop fort ("stamp coupling") − Utilisation du mode ref pour p, deja un pointeur − Utilisation d’une procedure plutot que d’une fonction 4/6 samedi novembre 24, 2012 Printed by Tremblay Guy nov 24, 12 10:04 erreurs−typiques−prive.txt Page 5/6 procedure calculerCoefficient( int i, Polynome p1, Polynome p2 ) returns int c { c = 0; int expMin = max( 1, i−ub(p2^)+1 ); int expMax = min( i, ub(p1^) ); for [k = expMin to expMax] { c += p1^[k] * p2^[i−k+1]; } } Erreur = Nom de fonction ne devrait pas etre un verbe d’action. samedi novembre 24, 2012 5/6 Printed by Tremblay Guy nov 24, 12 10:04 erreurs−typiques−prive.txt Page 6/6 BONNE SOLUTION ============== procedure coefficient( int i, Polynome p1, Polynome p2 ) returns int c { c = 0; int expMin = max( 1, i−ub(p2^)+1 ); int expMax = min( i, ub(p1^) ); for [k = expMin to expMax] { c += p1^[k] * p2^[i−k+1]; } } PIF: ==== co [i = 1 to n] p^[i] = coefficient( i, p1, p2 ) oc 6/6 samedi novembre 24, 2012