jeudi 22 décembre 2011

Votre premier Hello World OpenMP sur un environnement Ubuntu 11.04

OpenMP (Open Multi-Processing)

  • Une interface de programmation pour le calcul parallèle sur architecture à mémoire partagée
  • Supportée sur de nombreuses plateformes, incluant Unix et Windows, pour les langages de programmation C/C++ et Fortran
  • Permet de développer rapidement des applications parallèles à petite granularité en restant proche du code séquentiel


#include <omp.h> : directive qui permet d'inclure la bibliotheque omp (OpenMP)

#pragma omp parallel :
  • S'applique à la ligne qui suit ou au bloque suivant.
  • Permet de déclarer une région parallèle. 
Variable privée :
  • est propre à chaque thread
  • a une valeur indéterminée à l'entrée de la région parallèle à moins d'utiliser une clause firstprivate.
NB : Les modifications qu'elle va subir ne seront visible qu'à l'intérieur du thread 


omp_get_num_threads() :  retourne le nombre de threads
omp_get_thread_num()   :   retourne le numéro du thread

Pour modifier le nombre des threads , il suffit de changer  le contenu de la variable OMP_NUM_THREADS
 
export OMP_NUM_THREADS=4


Exécution :








mercredi 22 décembre 2010

Tutorial sur les tests unitaires


Test unitaire : 
En programmation informatique, le test unitaire est un procédé permettant de s'assurer du fonctionnement correct d'une partie déterminée d'un logiciel ou d'une portion d'un programme 
 (source wikipedia)


Il offre:
  • une analyse de petite granularité
  • diminution du nombre des bugs
  • une  documentation efficace de votre code


Les Frameworks les plus connus :
  • JAVA :JUnit
  • Langage C : CUnit
  • Delphi :DUnit
Démonstration avec JUnit :


File -- New Project 



  • Créer une nouvelle classe Calculatrice  sous le Package tn.insat :


Définir 4 methodes statiques :
  • Somme
  • Produit
  • Division
  • Soustraction

  • Création de la Classe CalculatriceTest

Clique droit sur la Classe Calculatrice :


 On peut bien voir les méthodes qu'on a déjà définies :


  •  Ajout de la librairie JUnit(inclus dans Eclipse)




  • Modifier les méthodes ajoutées :

  • Run :








  • On voit que l'éxécution de  TestSomme et TestProduit a été effectué avec succès avec un temps d’exécution presque zéro(savoir ce temps est intéressant dans le cas d'une méthode qui prend un temps important pour s’exécuter).
  • Les deux dernières méthodes ont  renvoyé un échec d'exécution.


Blog de Kassis Bassem
Étudiant en génie logiciel à l'Institut National des Sciences Appliquées et Technologies ( Tunisie )

dimanche 19 décembre 2010

Utiliser JQuery avec ASP.Net pour afficher des statistiques

jQuery :
 est une bibliothèque JavaScript libre  qui porte sur l'interaction entre JavaScript (comprenant AJAX) et HTML, et a pour but de simplifier des commandes communes de JavaScript (source wikipedia)





Jquery est un  ensemble du code javascript qui contient des fonctions permettant à l'utilisateur de faire des animations, des effets graphiques ...




Quelques exemples :
http://visionwidget.com/tuts/webtuts/536-jquery-animation-effects-examples-tutorials.html


Notre but est  d'afficher des statistiques avec des effets visuels :

  • 66% : Android
  • 17% :Windows phone
  • 17% :Blackberry

1.  Télécharger les sources .js suivantes :
                               http://rapidshare.com/files/438144789/Scripts.rar






            2. Créer un nouveau controleur ChartController :
           
Ce controleur contient :
  • La méthode JavascriptChart()
Permet de renvoyer vers la page  JavaScriptChart.aspx
  • La méthode GetMobileStatistic() qu'on va l'expliquer prochainement.

       3. Construction de la page JavascriptChart.aspx :
http://rapidshare.com/files/438147353/JavascriptChart.aspx








Json :  (JavaScript Object Notation – Notation Objet issue de JavaScript) est un format léger d'échange de données.
Source :http://www.json.org/jsonfr.html

 jQuery.getJSON("GetMobileStatistic", null, function (items)

Cette fonction appelle la méthode GetMobileStatistic du controleur courrant ChartController





Blog de Kassis Bassem
Étudiant en génie logiciel à l'Institut National des Sciences Appliquées et Technologies ( Tunisie )