2010
Automatic Parallelization of Audio Applications with Faust
FAUST est un langage de programmation fonctionnel spécifiquement conçu pour la synthèse et le traitement du signal en temps réel. L'une des particularités du langage est de concilier une syntaxe textuelle avec une approche par composition algébrique de bloc-diagrammes. Une autre particularité de FAUST est de pouvoir être compilé de manière très efficace. Le code C++ produit par le compilateur Faust peut généralement rivaliser avec du code écrit à la main par un... Lire la suite
FAUST est un langage de programmation fonctionnel spécifiquement conçu pour la synthèse et le traitement du signal en temps réel. L'une des particularités du langage est de concilier une syntaxe textuelle avec une approche par composition algébrique de bloc-diagrammes. Une autre particularité de FAUST est de pouvoir être compilé de manière très efficace. Le code C++ produit par le compilateur Faust peut généralement rivaliser avec du code écrit à la main par un développeur expérimenté. Faust offre une alternative de haut niveau au C pour l'écriture de plugins, de bibliothèques et d'applications audio sans pour autant sacrifier les performances. En outre, grâce à son système d'architectures, le code Faust peut être facilement déployé sur plus d'une dizaine de plateformes audio (VST, MAX/MSP, PD, SC, CSOUND, JACK, etc.). Nous avons récemment étendu le compilateur avec de nouvelles options permettant de générer automatiquement du code parallelisé. L'objectif de l'exposé sera de présenter ces techniques de génération de code et les gains de performances que l'on peut espérer sur les machines multicore actuelles. La présentation sera accompagnée de démonstrations et d'exemples concrets. Signalons que le projet est accessible sur sourceforge (\url{http://sourceforge.net/projects/faudiostream/}). Il est également possible d'utiliser le compilateur FAUST en ligne, à l'adresse suivante : \url{http://faust.grame.fr}.