erreurs−typiques−prive.txt

publicité
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
Téléchargement