IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

IHM java/J3d et calculs en FORTRAN


Sujet :

API standards et tierces Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Points : 12
    Points
    12
    Par défaut IHM java/J3d et calculs en FORTRAN
    Bonjour,

    Nous avons développé un code de calcul qui permet de simuler la trajectoire d'un parapente, mais en Matab... Étant donné la performance du langage, j'aimerais le coder en FORTRAN, ou, si c'est impossible en c++, pour gagner suffisamment en performance avec à l'horizon le temps réel.

    Mon problème : j'ai une visualisation en java3d (parceque c'est ce que je maitrise pour la 3d) et je voulais savoir si c'était possible d'interfacer un code FORTRAN avec l'interface pour qu'a chaque top de synchronisation, ils échangent des infos (qq variables en fait). Et si oui, comment?

    Merci et bonne soirée !

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    En fait, une autre façon de formuler le problème serait de savoir comment l'on peut faire communiquer deux programmes FORTRAN et Java (comme deux ordinateurs au travers d'un port), pour qu'ils s'échangent un petit tableau de variables.

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Une idée simple et efficace : tu peux faire un serveur côté Java et un client côté Fortran. La communication se fait par socket. L'envoi de données est à l'initiative du client Fortran. Il suffit seulement de choisir un protocole d'échange des données.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Une idée simple et efficace : tu peux faire un serveur côté Java et un client côté Fortran. La communication se fait par socket. L'envoi de données est à l'initiative du client Fortran. Il suffit seulement de choisir un protocole d'échange des données.
    Oui, mais je ne vois pas comment lancer le programme compilé FORTRAN depuis Java... Ca revient un peu à la proposition de finok de faire ça non?

    J'avais lu ce site, mais je suis complètement dépassé, l'exemple est trop lourd pour moi, je n'arrive pas à faire abstraction des éléments physiques pour ne garder que le principe du code et l'interface Java/Fortran/c++, quelqu'un connait un truc plus simple là dessus?

    Merci.

  6. #6
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Bon basiquement le but est de créer un wrapper en C ou C++ autour de ton code FORTRAN (celà doit normalement être relativement facile à faire). Ce wrapper devra contenir toutes les méthodes (aka fonctions) qui doient être appelée par l'interface en java.

    Puis en utilisant une librairie comme JNA (ou JNI plus complexe mais peu être un poil plus puissant) tu lies ton code C/C++ à ton code java (cf http://blog.developpez.com/adiguba?t..._pour_les_nuls). A partir de ce moment là tu pourras appeler des méthodes java qui invoque les fonctions de ton code C/C++ et qui elles même déclenchent ton code fortron de la façon adéquate.

    Bon sinon tu fais un programme en fortran avec un main qui se lance en tant qu'exe, produit son résultat dans un fichier (ou sur la sortie standard).
    Puis en java tu peux lancer directement un programme via Runtime.getRuntime()...

    cf http://blog.developpez.com/adiguba?t...es_plus_simple
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Super,

    Ca me semble assez clair. Je vais essayer dans un premier temps de coder en java/c++, ça devrait être assez performant. Si ce n'est pas le cas, je passerais à FORTRAN/c++/java, mais j'ai peur que les interfaces ralentissent aussi le code... Pour les soucis, on verra à la mise en oeuvre...


    Merci beaucoup et bonne soirée !

  8. #8
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    En ce qui concerne les perfs je doute qu'il y ait vraiment des différences énormes entre Fortran et C++, les deux finissent en compilé en code natif...
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par sinok Voir le message
    En ce qui concerne les perfs je doute qu'il y ait vraiment des différences énormes entre Fortran et C++, les deux finissent en compilé en code natif...
    On développe de gros outils de calcul numérique scientifique pour l'aéronautique à mon boulot et les outils sont étagés à 3 niveaux Python/C++/Fortran, grosso-modo de la structure vers les routines de calcul, pour des raisons de performance.

    Bon, ce ne sont pas les mêmes problèmes dans mon cas (un calcul ne va pas tourner pendant des mois...), je pense qu'il y a bien plus à gagner en améliorant la structure générale du code plutôt que de se reposer sur un langage soi-disant plus rapide.

    Merci encore, ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/09/2007, 10h05
  2. Temps de calcul en Fortran
    Par Butterfly83 dans le forum Fortran
    Réponses: 28
    Dernier message: 07/09/2007, 11h31
  3. création d'IHM java en XML
    Par sglon dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 10/04/2007, 05h43
  4. Outils - Test de regression - IHM Java Swing
    Par Atomikx dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 03/04/2007, 08h46
  5. Outils test IHM Java
    Par Atomikx dans le forum Interfaces Graphiques en Java
    Réponses: 8
    Dernier message: 25/03/2007, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo