Core Unit: un nouveau framework pour le développement parallélisé.
Mala
Membre, Modérateur
Certains d'entre vous (les vieux de la vieille) ont peut être mémoire d'un petit ovni baptisé SAM que je vous avais présenté ici même à titre de preview en 2006. Après avoir été contraint de le délaisser pour un projet de plus grande envergure, j'ai repris son développement fin 2009. Les technologies d'Apple ayant pas mal évoluées depuis 2006, j'avais décidé de le réécrire entièrement. Une première pierre de l'édifice arrive aujourd'hui tranquillement à maturité. C'est donc avec un grand plaisir que je vous présente "Core Unit" le nouveau noyau de SAM.
Pourquoi?
La parallélisation des traitements est aujourd'hui une nécessité incontournable pour continuer à gagner en puissance de calcul. Multi-coeur, multiprocesseur, GPGPU sont autant de termes devenus courants en développement logiciel. Et, sans aller jusque là , nos interfaces graphiques toujours plus sexy nécessitent de plus en plus de traitements asynchrones pour que l'utilisateur ait toujours la sensation de maà®triser son logiciel et non de le subir. Bref, aujourd'hui l'utilisateur est au coe“ur de tout bon produit et la réactivité de ce dernier est considéré comme un dû.
Comment?
Avec Léopard puis Snow Léopard, et aujourd'hui Lion, Apple n'a cesse d'ouvrir les portes de la programmation parallèle avec la mise à disposition de technologies telles que: les queues d'opérations, les blocks, Grand Central ou bien encore OpenCL. Dans cet esprit, Core Unit propose une approche complémentaire mettant l'accent sur un élément à mon sens trop peu pris en compte: le développeur.
Quoi?
Core Unit est un framework Mac gratuit qui introduit un paradigme assez simple et relativement complet: des boà®tes de traitement (CUUnitProcess) possèdent des propriétés, des entrées et des sorties (CUOutlet). Les boà®tes de traitement sont autonomes (multithread) et se mettent en action dès que les données suffisantes sont disponibles en entrée. Un système de tuyaux (CUPipeline) permet d'acheminer les informations entre entrées et sorties.
Alors avis aux amateurs...
http://www.coreunit.eliotis.com
Pourquoi?
La parallélisation des traitements est aujourd'hui une nécessité incontournable pour continuer à gagner en puissance de calcul. Multi-coeur, multiprocesseur, GPGPU sont autant de termes devenus courants en développement logiciel. Et, sans aller jusque là , nos interfaces graphiques toujours plus sexy nécessitent de plus en plus de traitements asynchrones pour que l'utilisateur ait toujours la sensation de maà®triser son logiciel et non de le subir. Bref, aujourd'hui l'utilisateur est au coe“ur de tout bon produit et la réactivité de ce dernier est considéré comme un dû.
Comment?
Avec Léopard puis Snow Léopard, et aujourd'hui Lion, Apple n'a cesse d'ouvrir les portes de la programmation parallèle avec la mise à disposition de technologies telles que: les queues d'opérations, les blocks, Grand Central ou bien encore OpenCL. Dans cet esprit, Core Unit propose une approche complémentaire mettant l'accent sur un élément à mon sens trop peu pris en compte: le développeur.
Quoi?
Core Unit est un framework Mac gratuit qui introduit un paradigme assez simple et relativement complet: des boà®tes de traitement (CUUnitProcess) possèdent des propriétés, des entrées et des sorties (CUOutlet). Les boà®tes de traitement sont autonomes (multithread) et se mettent en action dès que les données suffisantes sont disponibles en entrée. Un système de tuyaux (CUPipeline) permet d'acheminer les informations entre entrées et sorties.
Alors avis aux amateurs...
http://www.coreunit.eliotis.com
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Du grand art, avec la documentation Doxygen, etc... Bravo
J'en suis encore à me battre avec Doxygen pour intégrer le numéro de build subversion dans le nom de l'archive du framework. Pour le moment, je me suis résolu à le mettre dans le pied de page avec la date de publication que je génère à la volée avant le lancement de Doxygen.
J'ai profité du week end pour ajouter 2 nouveaux exemples:
- une recherche spotlight synchrone sans bloquer l'interface utilisateur.
- une version modifiée de l'exemple d'Apple "IconCollection" appliquée aux fonds d'écran du système.
D'autres plus poussés viendront par la suite.
Il me reste à finaliser les macros qui ne sont pas encore opérationnelles.
Franck, tu as tout à fait raison pour la licence. S'agissant d'un produit libre et non ouvert (pas Open Source) il faut que je m'en occupe. Si quelqu'un a mémoire d'une licence équivalente disponible sur la toile, je suis preneur.
Bonjour,
Il manque juste dans les exemples, les exécutables cela permet de voir vite fait sans devoir tout recompiler.
Voilà qui est fait.
J'en ai aussi profité pour mettre à disposition la doc sous forme d'une archive zip et j'ai ajouté des templates pour Xcode 3 (bien sûr Apple a cassé la compatibilité des templates avec Xcode 4... J'ai plus qu'à m'y coller).