Cariatides est DMP Compatible

Cariatides est maintenant DMP Compatible pour sa version 6.8 pour les 3 profils du DMP (Dossier Médical Patient) :  Profil création, Profil alimentation et Profil consultation.

Au bout de 3 mois, on voit une sortie positive pour ce projet 😀
Maintenant, il ne reste plus qu’à faire qu’il soit utilisable par des utilisateurs lambdas … Ce n’est pas rien mais le plus important est fait.

Pour info : Cariatides est logiciel de suivit de patient pour les hôpitaux psychiatriques, concu et développé par le GIP Symaris (Rouffach) basé sur le WebObjects associé à une base Oracle.

Java versus C++ (2nd round)

j’avais mis en ligne un premier résultat de test montrant que Java pouvait concurrence C++ dans le registre de la performance.

Afin de compléter ce premier résultat, j’ai poursuivi ma comparaison en accroissant le volume de calcul à réaliser ( volume des données et précision de calcul). Ce 2nd résultat confirme le premier test et encore une fois, la version Java de mon programme est autant performante (ou aussi peu pour les mauvaises langues) que ma version C++.

Voici les résultats :

C++/MPI

nb Dec Tps moyen Tps tot Prec moy Prec U
1 693,49 693,49 -5,39E-004 8,51E-004
2 689,225 1378,45 1,50E-005 7,65E-004
4 496,445 1985,78 -5,48E-005 5,12E-005
8 212,62 1700,96 2,54E-005 1,43E-005
16 89,039375 1424,63 3,14E-005 8,89E-006

Java/Jace

nb Dec Tps moyen Tps tot Prec moy Prec U
1 608,1793823242 608,1793823242 4,87E-007 1,53E-003
2 596,3627929688 1192,7255859375 -1,43E-004 7,35E-004
4 492,4767684937 1969,9070739746 -4,16E-010 4,22E-004
8 197,4866099358 1579,8928794861 -1,61E-005 8,70E-005
16 88,004909873 1408,0785579681 6,35E-006 1,15E-005

Voici les conditions de test :

Java utilisée :
java version « 1.6.0_16 »
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)

C++ : (Configuration du mésocentre)
Option d’optimisation -O2 (à vérifier la compatibilité de cette option
avec ICC)
Compilateur : ICC
MPI : openMPI (Intel)

L’ensemble des tests ont été réalisé sur mésoshared un jour de calme ^^

Java Vs C++

Quand un logiciel est en cours de phase initial ou lors d’un changement majeur, la question du choix du langage peut être posé.

Mon projet étant essentiellement basé sur de l’apprentissage de réseau de neurones, la performance se doit être maximum … Et pour beaucoup, C++ s’imposerait donc sans équivoque.

Oui mais, cette évidence est peut être à remettre en cause. Dans mon cas, et pour des raisons de recherche, j’ai réalisé une version Java et une version C++, ce qui donnera en parallèle, une version utilisant MPI et l’autre utilisante JaceMPI, un environnement en cours de développement.

Le premier résultat est sans équivoque, pour un apprentissage rapide :

C++ => 11.8 s
Java => 10.7 s

La différence n’est pas flagrante … mais le langage en tête n’est pas celui attendu.