Actualité ROMEO
Gecode

http://www.gecode.org/

Gecode

Gecode is an open, free, portable, accessible, and efficient environment for developing constraint-based systems and applications. Gecode is:

open
Gecode is radically open for programming: it can be easily interfaced to other systems. It supports the programming of new propagators (as implementation of constraints), branching strategies, and search engines. New variable domains can be programmed at the same level of efficiency as finite domain and integer set variables that come predefined with Gecode.
free
Gecode is distributed under a BSD-style license and is listed as free software by the FSF. All of its parts including documentation, implementations of global constraints, and examples are available as source code for download.
portable
Gecode is implemented in C++ that carefully follows the C++ standard. It can be compiled with modern C++ compilers and runs on a wide range of machines (including 64bit machines).
accessible
Gecode comes with extensive reference documentation that allows to focus on different programming tasks with Gecode. In the near future, we intend to release tutorial documentation explaining the various programming tasks in more detail.
efficient
Gecode offers competitive performance with respect to both runtime and memory usage. A comparison with some other systems is available.

 

pour compiler gecode (pour les administrateurs)

./configure --prefix=/usr/local/gecode-1.3.1 CC=icc CXX=icpc
make
(la version intel ne compile pas)


./configure CC=icc CXX=icpc --with-host-os=linux --with-compiler-vendor=intel

make
(c'est cette version qui est présente, avec les exemples)

 

pour utiliser gecode

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gecode-1.3.1/

/opt/gecode-1.3.1/examples/golomb
/opt/gecode-1.3.1/examples/golf
more /opt/gecode-1.3.1/examples/golf.cc

 

exemple de code gecode

à venir, les exemples sont dans /usr/local/gecode-1.3.1/examples/

compilation

1. Définition de l'env:

export GPREFIX=/optl/gecode-1.3.1/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/gecode-1.3.1/

2. Includes et édition de liens :

-L$GPREFIX/lib -lgecodekernel -lgecodesearch -lgecodeint -lgecodeset -lgecodeminimodel -I$GPREFIX/include -I$GPREFIX

3. Exemples pour les n-reines :

icc -L$GPREFIX/lib -lgecodekernel -lgecodesearch -lgecodeint -lgecodeset -lgecodeminimodel -I$GPREFIX/include -I$GPREFIX queens.cc -o queensicc $GPREFIX/examples/support.o $GPREFIX/examples/timer.o -lm

01/01/1970    Actualité

Actualité ROMEO
Comment soumettre un job ?

Depuis début novembre 2007, le gestionnaire de batch PBSpro est installé. Cet outil apporte plus de fonctionnalités comme la gestion de la mémoire par exemple.


 

Cette page est souvent modifiée.

 

Pour effectuer un calcul il est impératif d'utiliser ce gestionnaire de soumission. Il suffit de créer un fichier de soumission (qui décrit vos besoin et sera utilisé pour lancer le calcul)

 

Afin de planifier au mieux l'utilisation du cluster, le gestionnaire a besoin d'avoir des informations précises sur votre calcul : le nombre de coeurs de calcul et le temps d'utilisation de ceux-ci. Le gestionnaire vous allouera des processeurs de manière exclusive : seul votre programme y aura accès.

 

Rappel :

Le cpu time (paramètre cput) indique le temps effectivement utilisé sur le processeur. C'est une notion différente du walltime qui indique le temps pendant lequel l'unité de calcul vous était dédiée. C'est donc le paramètre walltime qui est important pour bien planifier les exécutions, quelle que soit l'utilisation que votre programme en fait. Pour une exécution sur plusieurs processeur, le walltime correspond bien au temps que vous pouvez noter avec votre montre (ou avec l'horloge on the wall), alors que le cputime additionne les temps de tous les cpus.

 

C'est pourquoi nous avons configuré la gestion des files de la manière suivante :

 

Queue Walltime max Walltime défaut Priorité
courte 3 heures 1 heure 100
longue 3 jours 6 heures 50
infinie 10 jours 12 heures 5

la commande qmgr -c "p s" permet d'avoir la configuration précise

 

Limites imposées :

 

Une limite est fixée quant au nombre maximal de processeurs utilisables par un utilisateur : 40

Cette limite sera certainement modifiée, par exemple pendant les périodes peu chargées que sont les vacances.


Les commandes suivantes permettent d'avoir des informations sur l'état du cluster :

 

Avant de lancer un calcul veillez à bien vérifier l'état du gestionnaire en utilisant la commande rinfo la partition parallel doit être à l'état running avec 96 procs. Vous trouverez une description de chaque nœud de la partition en utilisant la commande rinfo -nl . Enfin, pour obtenir l'état des nœuds dans la partition : pbsnodes –a.

La commande qstat permet d'afficher la liste des jobs, certain en status R (running) et d'autre en Q (attente)

La commande qstat -f permet d'avoir des informations précises sur un job en particulier

Nous avons développé des outils pour facilement connaître l'état de la machine :
/opt/tools/jr : les jobs en exécution
/opt/tools/jq : les jobs en attente
http://194.57.105.43/viewer pour visualiser l'état de la machine

 

 

Voici un script de soumission type, avec ses explications :

 

Les instructions PBSpro commencent toutes par #PBS, le fichier le soumission est lu une première fois par PBSpro, et seules les commande PBSpro sont utilisées. Au moment de l'exécution, le fichier est exécté par le shell et les commandes PBSpro sont alors vues comme des commentaires.

 


### un commentaire

#PBS -N nomJob : nom du job tel qu'il apparaitra dans qstat et nom des fichiers de sortie (limité à 15 caractères)

#PBS -r n : Le job ne peut pas être relancé

#PBS -q longue : (option) choix de la file à utiliser. En fonction des ressources réservées, la file la plus appropriée est choisie, mais il est possible d'en choisir une autre.

#PBS -l nodes=1:ppn=2 : (option) déclaration des ressources processeur, ici un noeud avec 2 processeurs sont réservées (on entend processeur logique, donc un coeur physique). Par défaut un noeud et un coeur sont réservés.

#PBS -l walltime=24:00:00 : (option) temps walltime. Par défaut le temps défaut de la file est utilisé.

#PBS -l pmem=3gb : (option) mémoire utile par processeur (2 gigas par défaut)

#PBS -l mem=6gb : (option) mémoire totale utile (défaut en fonction du nombre de processeur)
#PBS -M adresse@email

01/01/1970, arnaud_renard    Actualité

Actualité ROMEO
Demander un accès à ROMEO II

Le centre de calcul de Champagne-Ardenne a pour objectif de promouvoir et d'accompagner les activités de recherche numériques en Champagne-Ardenne. L'accès aux ressources st limité aux utilisateurs de la région Champagne-Ardenne, ou à leurs colaborateurs, dans le cadre de leur activité de recherche.

 

Pour bénéficier d'un accès à ROMEO II :

Si vous possédiez un compte sur ROMEO, faire simplement votre demande par mail en précisant votre demande d'accès à ROMEO II, et les logiciels que vous comptez utiliser.

 

Le maintien des comptes ouverts nécessite le respect des règles d'utilisation (spécifiées dans la charte ou par email), la participation aux animations scientifiques proposées (annoncées par mail ou sur le site), et la remise d'un compte rendu d'activité à la fin de chaque année.

 

Le centre de calcul régional ROMEO II est géré par un comité scientifique, et chargé en particulier :

  • d’assurer le lien entre les différents partenaires;
  • d’informer les utilisateurs sur les possibilités matérielles et logicielles du serveur;
  • de gérer les licences des programmes liés au calcul intensif;
  • de définir la politique d’utilisation du serveur;
  • d’assurer une animation scientifique.

 

 

Pour toute information complémentaire Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir

01/01/1970, arnaud_renard    Actualité

Actualité ROMEO
Utilisation du calculateur Romeo

 

Attention, cet article traite du premier calculateur Romeo installé en 2002 !

Utilisation du calculateur Romeo

 

Le système batch sur Romeo

 

Romeo est à la disposition des utilisateurs dans le cadre des files d'attente gérées par SGE. Tout manquement à cette règle, sciemment, par négligence, ou par incompétence entraînera simplement la fermeture des comptes mis en cause. Pour aider à mieux maîtriser ce système de file d'attente SGE, cette page rappelle les différentes queues et les commandes permettant de lancer un job. Le mode de contrôle est également détaillé. Vous pouvez aussi télécharger la documentation complète de SGE au format pdf.

  1. Présentation des queues batchs
  2. Les utilisateurs désirant faire des calculs longs sur Romeo (>1minute) doivent soumettre leurs travaux au système de gestion SGE (Sun Grid Engine). Le tableau suivant résume les différentes queues batch disponibles sur la machine.

    Noms queues
    # de slots Limite temps Limite disque Modes
    disponibles*
    Priorités
    (nice)
    court 4 30 mn 10 Go BIP 2
    6heures (désactivée) 4 6 h 1 Go B 4
    12heures 4 12 h 10 Go BP 4
    24heures (désactivée) 2 24 h 1 Go B 8
    48heures 8 48 h 1 Go BP 10
    big48 6 48 h 10 Go BP 10
    infini 4 336 h (14 jours) 1 Go BP 19
    biginf 4 336 h (14 jours) 10 Go BP 19
    24procs 24 1 h 1 Go P ¢ 0
    * B=batch, I=interactif (job=shell), P=parallèle
    ¢ queue spécifique au groupe "infoleri" pour job de 10' maximum sur toute la machine (priorité basse, nice 15).

    Remarques importantes : Le nombre de jobs est limité à 8 par utilisateur.
    Le nombre de jobs en parallèle est limité à 8 pour la machine entière (sauf 24procs)

     

  1. Comment soumettre un job?
  2.  

    Deux méthodes sont disponibles : soit on utilise l'interface graphique de SGE, soit on passe par la ligne de commande. On ne présentera ici que les commandes "clavier".

     

    • Comment monitorer la charge de la machine?
    • On dispose pour ce faire de la commande qstat. Une option pratique de qstat est -f (pour "full"), qui permet de formater l'affichage des jobs tournants en fonction des queues où ils se trouvent.

      Une autre commande pratique est prstat. Elle ressemble à la commande bien connue top mais permet par exemple d'obtenir avec l'option -t les sous-totaux mémoires, cpu, temps consommés par chaque utilisateur.

      La commande qacct -o permet quant à elle d'accèder aux totaux des temps machines consommés par chaque utilisateur depuis la création de leur compte

      Ces commandes de monitoring sont rappelées afin de permettre à l'utilisateur de bien choisir l'emplacement où il veut lancer son job et aussi pour lui permetre de connaître sa consommation cpu.


    • La commande qsub
    • La commande qsub est la principale commande de SGE et nous ne saurions que trop conseillé de lire sa page de man. Toutefois, nous allons résumé ici son utilisation.

      La syntaxe principale est la suivante : qsub nom_du_script où nom_du_script est le nom du fichier de script où sont stockés les commandes que devra faire tourner SGE dans la queue. On devrait donc y trouver généralement nom_du_programme <fichier_input > fichier_output.

      Nous allons résumer dans un tableau les principales options de qsub. Ces options peuvent être ajoutées au début du fichier de script en les faisant précéder d'un dièse et d'un dollar(#$).

      Options Effets
      -q nom_queue soumet le job dans la queue demandée
      -cwd l'entrée et la sortie standard deviennent le répertoire de travail où se trouve le fichier de script
      -M addresse e-mail définit une addresse e-mail à laquelle SGE peut envoyer l'état d'un job
      -m b envoie un mail à l'addresse définie par -M lorsque le job démarre
      -m e envoie un mail à l'addresse définie par -M lorsque le job finit correctement ;-)
      -m a envoie un mail à l'addresse définie par -M lorsque le job plante :-(
      -m s envoie un mail à l'addresse définie par -M lorsque le job est suspendu :-o
      -V exporte les variables d'environnement
      -S /path_to/shell exécute le job avec le shell demandé


      Exemple de script pour lancer un job:

          #!/bin/ksh

          #$ -S /bin/ksh
          #$ -V -cwd
          #$ -M nom_user@romeo
          #$ -m b
          #$ -m e
          #$ -m s
          #$ -m a
          /home/nom_user/bin/program.exe < file.inp > file.out

       


      Exemple de script pour lancer un job Fluent:

          #!/bin/ksh
          #$ -S /bin/ksh
          #$ -V -cwd
          #$ -M Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir
          #$ -m b
          #$ -m e
          #$ -m s
          #$ -m a
          export FLUENT_INC=/opt/Fluent.Inc
          /opt/Fluent.Inc/bin/fluent 2d -g -sge -i /data/home/user/fichier.jou

       

    • Parallèlisme
    • Romeo étant un calculateur SMP 24 processeurs, il est naturellement dédié aux calculs parallèles. Comment faire pour lancer un job en parallèle dans SGE?

      Dans un premier temps, il est nécessaire pour certains logiciels (dont Gaussian) de spécifier la taille du cache. En Ksh, on ajoute dans son fichier de script ulimit -s 8192 (ne pas mettre #$) (les processeurs ont un cache de 8Mo). En Csh, cela donne limit -h stacksize 8192 (ne pas mettre #$).

      Il faut ensuite demander à SGE de tourner en parallèle. Pour cela, un environnement parallèle SMP a été créé qui est accessible dans toutes les queues pour l'instant.
      Remarque : les jobs MPI ou OpenMP nécessitent de créer d'autres environnements parallèles.
      On ajoute donc dans les options de qsub : #$ -pe SMP nombre_procs. Valable sauf pour 24procs pour laquelle on utilise #$ -pe parallele nombre_procs


    • Parallèlisme avec MPI
    • Lorsque que l'on lance un job avec MPI sur roméo il est nécessaire d'adapter son shell de lancement afin de respecter la priorité (nice) assignée à la file.

      Il faut donc ajouter à la ligne de lancement la commande nice suivie de l'indice de priorité devant mprun et devant votre programme MPI.

      Exemple:

      Je souhaite lancer mon programme MPI dans la file "court" qui possède un nice de "2" (voir ci-dessus le tableau de correspondance file-nice)

          #!/usr/bin/bash
          #$ -S /usr/bin/bash
          #$ -V
          #$ -cwd
          #$ -M votre@email
          #$ -m b
          #$ -m e
          #$ -m s
          #$ -m a
          #$ -pe SMP 4
          nice -2 mprun -np 4 nice -2 monProgrammeMPI

      Remarque: seule la dernière ligne de ce shell est importante pour gérér la priorité

    • De l'interactif dans du batch
    • Il est possible de lancer dans la queue "court" un job qui est en fait une session, càd, qu'un utilisateur peut à partir de sa session principale demander la création d'un job interactif. Les commandes sont:

      • qrsh: soumet une session interactive rsh à SGE
      • qlogin: soumet une session interactive login à SGE
      • qsh: soumet une session interactive X-Window à SGE
      Ces sessions interactives sont limitées à la queue courte (en queue infini un utilisateur pourrait bloquer la machine indéfiniment). Les options de ces trois commandes sont disponibles dans la page de man, elles sont globalement les mêmes que pour qsub.

       

     

  3. Comment tuer un job?
  4. C'est toujours l'étape la plus facile : qdel job_id où job_id est le numéro de job attribué par SGE et disponible via la commande qstat -f.

 


Pour toute question sur cette page, veuillez vous adresser à Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir

 

 

Tutoriaux disponibles

 

Questions / Réponses

 

Q.0 :Lorsque je compile avec gcc, l'executable obtenu ne fonctionne pas sur Romeo. Est-ce normal ?
R.0: En effet, 2 gcc sont installés sur Roméo, et la commande make utilise le gcc Unix et non le gcc Solaris...

Q.1 :Je suis responsable d'un projet et je souhaite en soumettre un nouveau. Y a-t-il quelquechose de particulier à faire ?
R.1: Il faut impérativement que vous spécifiez un mot de passe différent de celui de votre autre projet. C'est la seule restriction connue.

Q.2 :Jobs MPI non terminés en sortie de SGE ?
R.2: SGE sort bien vos jobs de son système de file mais n'arrive pas à les stopper (uniquement sur les jobs MPI) il faut faire un kill de vos process, car ils continuent à tourner hors du système de file

Q.3 :Comment gérér la priorité de mes jobs MPI (nice) ?
R.3: Il suffit d'ajouter "nice -prioritéDeLaFile mprun -np nombreDeProcesseurs nice -prioritéDeLaFile jobMPI" à la fin de votre shell de lancement. Un exemple se trouve au bas de cette page.

Q.4 :Utilisation de X11 via SSH
R.4: Vous pouvez utiliser X11 à travers le tunnel SSH en utilisant lors de votre connexion "ssh -X romeo.univ-reims.fr", attention verifier alors la valeur de votre variable DISPLAY elle doit être égale à "localhost:10.0". Vous pourrez ensuite lancer des applications en mode graphique.

Q.5 :Comment lancer Scilab en mode texte ?
R.5: Utilisez la ligne de commande suivante "scilab -nw"

Q.6 :Comment lancer dans Sun Grid Engine des jobs dépendants ?
R.6: Vous pouvez utiliser la commande "qsub -hold_jid identifiant_job1, identifiant_job2, etc", ainsi le job numero 2 ne sera lancé que lorsque le job numéro 1 sera terminé.

Q.7 :Mon process vient d' être tué après 30 minutes ?
R.7: les jobs lancés hors systèmes de file sont limités dans le temps à 30 minutes, vous pouvez visualiser les restrictions en tapant "ulimit -a"

Q.8 :A quoi ressemble un script MPI ?
R.8: Regarder le tutorial fait par Philippe RIS vous en aurez un trés bon exemple. Cliquez ici

Q.9 :je veut diviser une matrice n*n sur un nombre p e processeur par mpi avec mpi_scatter ou mpi_send ca ne marche pas et je suis en blocage si mpi send et mpi rcv ...
R.9: je peux diffuser ce message à la liste des utilisateurs pour vous aider, ecrivez moi sur Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir
[archive du site http://www.univ-reims.fr/calculateur au 4 mars 2007]

 

01/01/1970    Actualité

Actualité ROMEO
Présentation Hardware de ROMEO II

ROMEO II a été installé dans les locaux du Centre de Calcul Régional de Champagne-Ardenne en Novembre 2006. L'inauguration officielle des locaux et de la machine a eu lieu le 31 janvier 2007.

 

ROMEO II est un supercalculateur de type grappe d'ordinateur (Cluster) . Il est constitué de 11 noeuds et d'un total de 108 coeurs et de près de 400 giga octets de mémoire vivre, pour déployer 614 giga flops (milliards d'opérations par seconde). Les processeurs choisis sont les Intel Itanium II (génération Montecito) dotés chacun de deux cœurs de calcul, avec 8 méga octets de mémoire cache et une fréquence de 1,6 Giga Hertz (famille 9030, gravure à 90nm).

 

Trois nœuds sont réservés pour le service et les 8 autres pour le calcul :

 

Noeuds de service :

romeo0 : C'est le noeud d'administration, il gère l'authentification sécurisée des utilisateurs, maintient et sauvegarde les données et utilisateurs,gère l'accès aux ressources de calculs ainsi que la plupart des services du cluster. Novascale 3045, 2 processeurs, 8Go de Ram, 300Go de DD.

 

romeo1 : C'est le noeud frontal situé à l'Université de Reims Champagne-Ardenne. Ou qu'ils soient dans le monde, les utilisateurs se connectent au cluster par l'intermédiaire de ce noeud de login. Tirant ainsi bénéfice du réseau de recherche Renater et du réseau régional Télémus. Tous les outils pour créer des programmes y sont installés (compilateurs, débuggers, bibliothèques, ... ). Une fois mis au point, le programme est soumis comme une tache de calcul au gestionnaire de batch PBSpro qui exécutera le dit programme sur un nœud de calcul adapté au moment ou il sera disponible. Novascale 3045, 2 processeurs, 32Go de Ram, 300Go de DD.

 

romeoutt : c'est un frontal équivalent à romeo1 installé physiquement dans les locaux de l'Université de Technologie de Troyes et relié au cluster grâce au réseau Régional Télémus. Novascale 3045, 2 processeurs, 16Go de Ram, 300Go de DD.

 

Noeuds de calcul :

Chaque noeud est constitué de plusieurs processeurs qui partagent la mémoire

romeo2 Novascale 3045 8 cœurs de calcul 16Go de Ram 300Go de DD SCSI 3
romeo3 Novascale 3045 8 cœurs de calcul 16Go de Ram 300Go de DD SCSI 3
romeo4 Novascale 3045 8 cœurs de calcul 16Go de Ram 300Go de DD SCSI 3
romeo5 Novascale 3045 8 cœurs de calcul 16Go de Ram 300Go de DD SCSI 3
romeo6 Novascale 3045 8 cœurs de calcul 32Go de Ram 300Go de DD SCSI 3
romeo7 Novascale 3045 8 cœurs de calcul 32Go de Ram 300Go de DD SCSI 3
romeo8 Novascale 5165 16 cœurs de calcul 128Go de Ram 600Go de DD SCSI 3
romeo9 Novascale 5325 32 coeurs de calcul 64Go de Ram 600Go de DD SCSI 3

 

 Les périphériques suivants sont intégrés à la machine :

  • Baie de disques FDA 1500 NEC contenant 20 disques de 146 Go chacun, et connectés en Raid 6 permettant une redondance des 2 TO d'informations et donc une sécurité en cas de panne. La baie est reliée en fibre optique sur le noeud d'administration.
  • Sauvegarde sur Bandes Neo2000-LXN2000, avec 2 lecteurs LTO3 (débit 1840Go/h), 30 cassettes (66To). Une sauvegarde est effectuée chaque jour, ce qui permet de retrouver des information détruites ou effacées par erreur.
  • 4 Onduleurs avec 8 batteries supplémentaires (APC) permettent 30 minutes d'autonomie en cas de panne.
  • Un système KVM permet de se connecter tour à tour à tous les nœuds avec un seul clavier, souris et écran, d'une simple pression.
  • Un serveur PAP (sous windows serveur 2003) permet de contrôler et surveiller les Novascales 5xx5 (romeo8 et romeo 9).
  • Réseau de données Gigabit (Cisco 3560-G 24 ports)
  • Réseau de calcul Quadrics (QS32A-CR 16 voies avec prise en charge MPI) avec RMS, permettant une communication soutenue et bidirectionelle de plus de 900 Mo/s entre les noeuds.
  • Tous les nœuds sont équipés d'un Système Linux BAS de Bull à base de RedHat (2.6.18-B64k.2.17, installé en décembre 2007)
  • Système de soumission de jobs PBSpro


 

Mercredi 15 novembre 2006, Claude Piccoli (Bull) nous a présenté la partie Hardware de Romeo2

Retrouvez sa présentation ici .

01/01/1970, arnaud_renard    Actualité

Actualité ROMEO
Boost


version ROMEOII : http://cosy.univ-reims.fr/romeo2/documents/boost/

 

Boost est un ensemble de bibliothèques C++ gratuites et portables dont certaines seront intégrées au prochain standard C++. On y retrouve donc naturellement les concepts de la bibliothèque standard actuelle, et en particulier ceux de la STL avec laquelle elle se mélange parfaitement. Boost est très riche : elle fournit notamment des bibliothèques pour :

 

  • les threads (Boost.Threads)
  • les matrices (uBLAS) et les tableaux à dimensions multiples (Boost.MultiArray)
  • les expressions régulières (Boost.Regex)
  • la méta-programmation Boost.Mpl
  • l'utilisation de foncteurs (Boost.lambda, Boost.bind)
  • la date et l'heure (Boost.Date_Time)
  • les fichiers et les répertoires (Boost Filesystem)
  • gérer la mémoire avec des pointeurs intelligents (Smart Pointers)
  • faire de la sérialisation en binaire / texte / XML, en particulier sur les conteneurs standards (Boost Serialization)
  • manipuler des graphes mathématiques (Boost Graph)
  • manipuler les chaînes de caractères (Boost String Algorithms)
  • la création de parsers (Boost.spirit)
  • et bien d'autres...

 

La liste complète des bibliothèques classées par catégories est disponible ici : http://www.boost.org/libs/libraries.htm

 

La plupart de ces bibliothèques tentent d'exploiter au maximum les possibilités du langage C++. En fait, Boost se veut un laboratoire d'essais destiné à expérimenter de nouvelles bibliothèques pour le C++. Il s'agit donc aussi d'une communauté d'experts (dont plusieurs sont membres du comité ISO de normalisation du C++) qui mettent un point d'honneur à ce qu'un maximum de compilateurs et de systèmes soient supportés. Ils débattent aussi de l'acceptation de nouvelles bibliothèques et l'évolution de celles déjà existantes, préfigurant ainsi ce que à quoi ressemblera certainement la prochaine bibliothèque standard du C++.

 

C'est donc là que réside le grand intérrêt de Boost. Outre son excellence technique et sa license très permissive (compatible avec la GPL) qui permet de l'utiliser gratuitement dans des projets commerciaux, Boost est aussi un choix très viable sur le long terme. En effet, on peut légétimement espérer qu'un nombre important de ses bibliothèques soient un jour standardisées, ce qui en fait un outil dans lequel on peut investir du temps (et donc de l'argent) sans craindre de tout perdre au bout de quelques années faute de support ou d'évolution.

Turoriel BOOST par Aurélien Regat-Barrel

01/01/1970    Actualité