Interfaçage entre Maple et du code externe

Slides:



Advertisements
Présentations similaires
Programme et Langage C++
Advertisements

Le débogage Semaine 12 Version A15. Plan de leçon - Débogage  Commentaire javadoc  Définition  Fonctionnement  Point d’arrêt  Exécution  Contrôler.
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
Les Logiciels Libres une informatique ouverte et citoyenne Samedi 25 Mars Thomas Petazzoni
1 Après 3 séances ● Utilisation du système Linux – Il faut maîtriser l'utilisation de la souris (« copy/paste » des textes donnés) – Utilisation de la.
Qu'est ce que le logiciel libre ?. Qu'est-ce qu'un logiciel ? ● C'est une application informatique qui répond à un besoin : traitement de texte, navigateur.
Visualisation dynamique d'arbres hiérarchiques de très grande taille Par Rémi Fusade TER encadré par Thomas Hurtut et Thierry Stein.
Composants Matériels de l'Ordinateur Plan du cours : Ordinateurs et applications Types d'ordinateurs Représentation binaires des données Composants et.
1 Après 5 séances ● Utilisation du système Linux – Il faut maîtriser l'utilisation de la souris (« copy/paste » des textes donnés) – Utilisation de la.
LES FONCTIONS D'UN SYSTEME D'EXPLOITATION ● Le système d'exploitation contrôle entièrement les ressources matérielles locales. ● Il est responsable de.
Tableaux et Pointeurs Chaînes de Caractères Programmation Impérative II.
Tableau Numérique Interactif Quels usages du TNI dans sa pratique de classe et pourquoi ? Prise en main des différentes fonctionnalités et applications.
Portage d'une application sur GPU CreditCruncher.
GOOGLE MAPS ANDROID API V2. INTRODUCTION TO THE GOOGLE MAPS ANDROID API V2.
13/11/2016 Projet 1789, une plateforme d'enseignement innovante Soutenance intermédiaire du 02/12/10 Groupe n°81 : Lan Xu, Tanguy Kerdoncuff, Thomas Fredon,
WIKITTY Base de données orientée documents et API de persistance pour Java.
Mode noyau Appels Systèmes Interruptions Grégory Seront Institut Paul Lambin
Traitement d'images en Java avec JAI
Android PACT 2016 Encadrement Informatique.
Synthèse TP 2 Codeblock 1 Les objectifs de ce tp sont :
JAVA.
Communication client-serveur
Mener une activité.
Téléchargement de fichiers
Première présentation
Environnement de développement des BD
Présentation OCI700 et ACS Série 700
Dominique PETRELLA – Frédéric GUINEPAIN - IA-IPR STI Versailles
Visite guidée - session 3 Les postes de charge et les gammes
Séminaire EOLE Dijon Septembre 2008
SOMMAIRE 1: ORALE 2: Les 3 systèmes de gestion de base de donnés 3:ORACLE DATA BASE 4:MY SQL 5:Oppen Office.org Base 6:Concurrence Conclusion.
Résolution de grilles Slither Link
Résolution de problèmes au cycle 3
Qu'est-ce que KDE ? Le bureau de KDE4 et comment l'utiliser
Rechercher des articles et des sites web
Javadoc et débogueur Semaine 03 Version A17.
Disposition Titre avec image
Les Tests de performances
Principes de programmation (suite)
Les fonctions.
Centralisation de logs
Des outils pour le développement logiciel
Javadoc et débogueur Semaine 03 Version A16.
Outils Statistiques pour la Sémantique Décembre 2013
Semaine #6 INF130 par Frédérick Henri.
CeMEB La plateforme MBB
Programmation système
CeMEB La plateforme MBB
Direction du système d’information et de la stratégie numérique
LES IDE DE CONCEPTION Myriam BAKAYOKO Manon RAJAONARIVELO Jeremy MICHEL André NOEL Guillaume GEBAVI Arthur AGERON Fabien SIMON - G6S2.
Présentation initiale
Présentation initiale
Plus de 4000 langages....
Coefficient de la Matière : 1 Enseignant : Mlle GUESSOUM Objectifs de l’enseignement Donner à l'étudiant les fondements de.
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
Programmation Android Première application Android
Système d’exploitation UNIX
Assembleur, Compilateur et Éditeur de Liens
Tableau Numérique Interactif
Le Java premiers pas.
Niveau Intermédiaire 01/12/2018.
ENSEIGNER L’ALGORITHMIQUE ET LA PROGRAMMATION AU COLLÈGE
Système d’exploitation: Principe IFT6800 – E 2008 Pierre Poulin.
Principes de programmation (suite)
Notions d'architecture client-serveur. Présentation de l'architecture d'un système client/serveur Des machines clientes contactent un serveur qui leur.
Tableaux croisés dynamiques sous Excel et Tableau Software :
Tableau de bord d’un système de recommandation
Test de performances. Test de performances:  Un test de performance est un test dont l'objectif est de déterminer la performance d'un système informatique.
Contenu Systèmes de test parallèles Multithreading Synchronisation
Transcription de la présentation:

Interfaçage entre Maple et du code externe Nicolas Gachadoit Ingénieur d’applications

Qu’est-ce que Maple ? Maple est un des logiciels leaders du calcul mathématique et symbolique Calcul symbolique et numérique très performants Analyse, exploration, visualisation et résolution de problèmes mathématiques dans un seul environnement Différents types d’interaction, y compris via un langage de programmation très complet Capture de la connaissance et des calculs dans un format électronique combinant calculs, texte, tracés graphiques, images, sons, vidéos,…

Deux possibilités d’interfaçage Appel de code externe depuis Maple Disponible en C/C++, Java, FORTRAN Cas pratiques: Extension des capacités de Maple grâce à des bibliothèques de calcul existantes Accélération des calculs par rapport à des fonctions écrites en langage Maple Appel de Maple depuis du code externe (API OpenMaple) Disponible en C/C++, Java, Visual Basic Cas pratique: utilisation de Maple dans des applications nécessitant des calculs mathématiques évolués Rappel: on peut également étendre les possibilités de Maple grâce à l’ajout de fonctions écrites en langage Maple

Appel de code externe depuis Maple

Appel de code externe depuis Maple Etapes à suivre: Ecrire dans le langage “externe” le code de la fonction à ajouter. Exemple: factorielle (écrite en C) int __stdcall factorialC (int n) { unsigned i; unsigned long long factorial = 1; for (i=1; i<=n; ++i) { factorial *= i; } return factorial; Pour info: la fonction de calcul de factorielle existe déjà dans Maple…

Appel de code externe depuis Maple Etapes à suivre: Compiler cette fonction sous la forme d’une librairie partagée. Exemple sur Windows avec le compilateur Visual Studio: cl -Gz factorialC.c -link -dll -export:factorialC -out:factorialC.dll Les commandes de compilation sont disponibles dans l’aide pour différents OS Dans Maple, lier ce dernier avec cette librairie partagée: factorialC := define_external( 'factorialC', 'C', 'n'::integer[4], 'RETURN'::integer[4], 'LIB'="factorialC.dll"):

Appel de code externe depuis Maple Etapes à suivre: Appel de cette nouvelle fonction comme n’importe quelle fonction Maple: factorialC(10) Les fonctionnalités de calcul parallèle de Maple supportent l’appel de code externe. Il est possible de passer des tableaux en paramètre.

Appel de code externe depuis Maple Création du lien dans les autres langages: Java: factorialJava := define_external( 'factorialJava', 'Java', 'n'::integer[4], 'RETURN'::integer[4], 'CLASS'="factorialJava", 'CLASSPATH'=“.") FORTRAN: factorialFortran := define_external( 'factorialFortran', ‘FORTRAN', 'LIB'="factorialFortran.dll")

Appel de Maple depuis du code externe

Appel de Maple depuis du code externe Architecture de Maple: L’API OpenMaple permet d’accéder directement au noyau

Appel de Maple depuis du code externe Etapes à suivre: Ecrire dans le langage “externe” un programme faisant appel aux fonctions de l’API OpenMaple Compiler ce programme. Exemple sur Windows avec le compilateur Visual Studio: cl main.c -I"C:/Program Files/Maple 2016/extern/include“ "C:/Program Files/Maple 2016/bin.X86_64_WINDOWS/maplec.lib" Les commandes de compilation sont disponibles dans l’aide pour différents OS

Appel de Maple depuis du code externe Etapes à suivre: Exécuter le programme (à l’extérieur de Maple) Attention: Maple doit être installé sur la machine sur laquelle s’exécute le programme compilé Il n’est pas possible d’appeler simultanément 2 noyaux Maple (ou plus) via OpenMaple

Questions ?