Etude WCET de programmes Faust avec a3

Résumé : 1. Motivation : Faust est un langage de programmation spécialisé dans la synthèse sonore temps-réel à des fins musicales et artistiques. L'utilisateur typique de Faust est un réalisateur en informatique musicale (RIM) pour qui l'informatique est un outil de travail essentiel, sans être sa discipline première. Avec Faust, un musicien peut créer de toute pièce des instruments logiciels ou des effets, en se concen-trant en premier lieu sur la facture instrumentale et les aspects esthétiques des traitements so-nores. Ces instruments ou effets vont être décrits sous forme d'un code source Faust. Par la suite, ce code est compilé et devient utilisable par les musiciens interprètes. Le compilateur Faust offre un vaste choix d'architectures matérielles ou logicielles pour son exécution. De cette façon, il est possible d'élaborer des chaînes de traitement sonores complexes où des composants décrits avec Faust interagissent avec des machines du commerce, des stations audio-numérique (DAW), etc. Par conception, l'implémentation la plus concrète des traitements audio-numériques est effectuée par le compilateur Faust. À l'origine, ce choix de conception a été motivé par l'observation empi-rique des algorithmes écrits « à la main » par des musiciens développeurs : les performances étaient généralement moindres que des algorithmes écrits par des experts. Par extension, les premiers travaux sur le langage Faust ont également mis en évidence qu'il est possible de générer des implémentations d'algorithmes de bonne facture et que seuls des experts confirmés pouvaient en améliorer les performances. Le langage Faust apporte donc un compromis pour rendre la créa-tion de traitements sonores accessibles aux néophytes tout en garantissant des performances accrues. On remarquera aussi que le critère de performance est particulièrement important à la vue des contraintes d'exécution temps-réel imposées par le concert. Au delà des observations constatées et d'une longue expérience d'oeuvres élaborées avec Faust et éprouvées dans des conditions réelles d'interprétation en public, qui donnent déjà un haut ni-veau de confiance dans la technologie, il est possible d'aller plus loin et de déterminer analytique-ment les performances d'un programme. En particulier, il est possible de calculer le temps d'exécu-tion d'un traitement sur une architecture définie. Calculer le temps exact d'exécution d'un programme est un problème indécidable. Aussi, une ap-proche approximative est nécessaire. Dans le cas présent, nous avons cherché à étudier les logi-ciels actuellement disponibles pour mesurer le WCET (Worst Case Execution Time) d'un programme , qui est une borne supérieure sur tous ses temps d'exécution possibles. Cette mesure est particulièrement pertinente pour un langage comme Faust, qui suit l'approche synchrone [2]. En effet, dans ce cas, les traitements effectués sont effectués par pas de temps réglés sur la fréquence d'échantillonnage ; ils doivent être terminés à la fin de chaque période, ce qui peut être assuré par un analyse WCET.
Liste complète des métadonnées

https://hal-mines-paristech.archives-ouvertes.fr/hal-01691614
Contributeur : Claire Medrala <>
Soumis le : mercredi 24 janvier 2018 - 10:49:59
Dernière modification le : lundi 12 novembre 2018 - 10:59:11
Document(s) archivé(s) le : jeudi 24 mai 2018 - 17:27:55

Fichier

E-420.pdf
Fichiers produits par l'(les) auteur(s)

Identifiants

  • HAL Id : hal-01691614, version 1

Citation

Benoît Pin, Pierre Jouvelot. Etude WCET de programmes Faust avec a3. [Rapport Technique] E-420, Mines ParisTech - PSL Research University - Centre de Recherche en Informatique (CRI). 2017. ⟨hal-01691614⟩

Partager

Métriques

Consultations de la notice

49

Téléchargements de fichiers

24