Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/08/2011, 16h57   #1
Membre éclairé
 
Homme
statisticien
Inscription : mai 2011
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : statisticien
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2011
Messages : 212
Points : 319
Points : 319
Par défaut Forte variabilité des temps d'exécution : Comment réussir à "stabiliser" SAS sous Windows ?

Bonjour

Suite aux discussions d'il y a quelques semaines sur la meilleur façon de faire des jointure,
je me livre en ce moment à des expérimentations de performance des différentes méthodes dont on avait parlé.

Pour cela je réalise des mesures répétées sur le temps d'exécution des différentes méthodes.

Je m'attendais à des résultats plus ou moins constants à méthode donnée ET fichiers donnés.

Hors je m'aperçois que ce n'est pas vraiment toujours le cas.

Par exemple pour une méthode donnée je lance 7 fois de suite successives la même exploitation et relève les temps d'exécution via une macro.

Et la variabilité dans certains cas me semble énorme.


Je vous livre quelques résultats pour illustrer mes propos

Citation:
Test 1 : Proc SQL avec index

1-A Premier jeu de fichier (temps d'execution en secondes)

116 / 97 / 38 / 38 / 37 / 37 / 37

1-B Deuxième jeu de fichier (temps d'execution en secondes)

937 (!!) / 160 / 163 / 180 / 168 / 169 / 159

1-C Troisième jeu de fichier (temps d'execution en secondes)

302 / 281 / 315 / 278 / 281 / 285 / 255

Test 2 : HASH (temps d'execution en secondes)

2-A Premier jeu de fichier (temps d'execution en secondes)

126 / 123 / 125 / 132 / 115 / 124 / 126

2-B Deuxième jeu de fichier (temps d'execution en secondes)

82 / 46 / 41 / 42 / 43 / 57 / 53

Test 3 : MERGE (temps d'execution en secondes)

3-A Premier jeu de fichier (temps d'execution en secondes)

63 / 16 / 24 / 22 / 35 / 16 / 31
Il y a parfois des temps successifs "relativement" proches au sein d'une même méthode comme en 1-C , 2-A avec une variabilité qui reste modérée.

D'autre fois un premier voir un deuxième temps "mauvais" puis des temps meilleurs dans un rapport 2, 5 voir parfois 10 fois inférieurs par rapport au premier essai

Plus rarement ce sera pas le 1er ou le 2eme mais le 5eme par exemple

Dans d'autres cas très rares, il m'est arrivé d'avoir disons 2 secondes pour le premier temps de réalisation et ensuite 6 temps de 16 secondes de façon tout aussi incompréhensible.


J'imagine bien que les processus systèmes concurrents à SAS peuvent rajouter quelques secondes de temps en temps mais là surtout pour des méthodes qui requièrent plusieurs minutes passer de 3mn à 15 mn ou l'inverse pour faire exactement la même chose ça fait beaucoup !

Ma question :

Existe t il des façons de paramétrer SAS ou bien windows ou les deux en même temps pour éviter ces problèmes de forte variabilité des temps d'exécutions au pour un même code (+ même fichiers).
Bref pour "stabiliser" le comportement de SAS ?

Car sans ça et en exagérant un peu tout effort d'optimisation de code me semble un peu vain

Je rajoute que pendant les tests, l'activité de l'ordinateur est entièrement dédié au test donc sans autre application s'exécutant de façon concurrente.
jerome_pdv2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 17h48   #2
Membre habitué
 
Femme Géraldine CADE DESCHAMPS
Support Clients SAS (France et Europe)
Inscription : février 2010
Messages : 62
Détails du profil
Informations personnelles :
Nom : Femme Géraldine CADE DESCHAMPS
Localisation : France

Informations professionnelles :
Activité : Support Clients SAS (France et Europe)
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 62
Points : 139
Points : 139
Bonjour,

Tout d'abord, quid des données : s'agit-il de données SAS se trouvant sur la même machine, ou bien de données DBMS, peut-être sur une autre machine ?

De manière générale, des options peuvent être ajustées. La configuration de SAS pour de meilleures performances est expliquée dans cet excellent document :
How to Maintain Happy SAS®9 Users
http://support.sas.com/resources/pap...9/310-2009.pdf

Géraldine Cade
Géraldine_Cade_SAS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 17h58   #3
Membre éclairé
 
Homme
statisticien
Inscription : mai 2011
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : statisticien
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2011
Messages : 212
Points : 319
Points : 319
Les données sont des tables sas classiques, situées sur un même répertoire du disque dur, de toute façon dans les itérations successives pour calculer le temps moyen pour une méthode donnée ce sont exactement les mêmes fichiers qui sont rappelés plusieurs fois de suite à chaque itération de la boucle de la macro.

Alors la gestion mémoire des systèmes d'exploitations étant ce qu'elle est, et dans le cas où la première prend plus de temps que les autres, il est possible que ce soit ce premier temps qui soit le temps "normal" les autres temps étant sous-évalués du fait que des "choses" trainent encore en mémoire du fait des traitements de la première itération de la boucle et par conséquent qu'il y a donc moins de choses à aller chercher sur le disque ?
C'est peut-être une explication naïve mais je cherche à comprendre.

Peut être que je devrais utiliser des options pour "vider" la mémoire entre deux intérations ?

Merci pour la référence cela va peut-être éclairer ma lanterne.
jerome_pdv2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h32.


 
 
 
 
Partenaires

Hébergement Web