Archives pour la catégorie MATLAB

Quand Monsieur Spock utilisait MATLAB !

Bon d’accord, j’abuse un peu, car MATLAB n’existait pas en 1979, date de la sortie du premier film Star Trek. Néanmoins, saviez-vous que l’USS Enterprise embarquait bel et bien les prémices de MATLAB lors de ces voyages intergalactiques ?

Cleve Moler a posté un billet « 1976 Matrix Singular Value Decomposition Film« , à propos d’un film scientifique qu’il a réalisé en 1976 et qui s’intitule « Les matrices et leurs décompositions en valeurs singulières ».

I produced the computer animated graphics on the CDC 7600 with the EISPACK SVD code under development and the new graphics library written by Mel Pruitt. I also wrote the script for the movie.

Voici la vidéo que Cleve a mise en ligne :

Un bel exploit technique et scientifique pour l’époque !

Quel rapport avec Monsieur Spock me direz-vous ? Voici l’anecdote que Cleve raconte :

The first Star Trek movie came out in 1979. The producers had asked Los Alamos for computer graphics to run on the displays on the bridge of the Enterprise. They chose our SVD movie to run on the science officer’s display. So, if you look over Spock’s shoulder as the Enterprise enters the nebula in search of Viger, you can glimpse a matrix being diagonalized by Givens transformations and the QR iteration.

Voici une capture de la scène illustrant ces propos :
spock

La scène se déroule à 1h15 environ dans la version « director’s edition » du film.

On peut dire que MATLAB revient de loin !

:mrgreen:

PCT = MathWorks + AccelerEyes ?

AccelerEyes est une société spécialisée dans le calcul parallèle sur GPU (CUDA et OpenCL). Elle commercialisait Jacket qui était une extension (voire une alternative) à la Parallel Computing Toolbox (PCT) de MathWorks :

What additional MATLAB add-ons do you need?

  • A single GPU at a time: no MATLAB add-ons required
  • Multiple GPUs on the same node: Parallel Computing Toolboxâ„¢ is optional
  • Multiple GPUs on multiple nodes, Parallel Computing Toolboxâ„¢ and Distributed Computing Serverâ„¢ required.

Des discussions sont en cours entre les deux sociétés pour intégrer directement Jacket dans les futures versions de la PCT et de la DCT

AccelerEyes will discontinue new Jacket product sales.

Aucun calendrier n’est fixé pour l’instant, mais comme la R2013a est déjà en prerelease, on ne devrait pas voir arriver ces améliorations avant 2014. C’est ce que laisse également supposer le message de pavanky dans cette discussion :

Jacket support will end at the end of 2013

J’aurai sans aucun doute l’occasion de vous en reparler d’ici la ;)

MATLAB, Intel et NVIDIA sont sur un portable

Mon ordinateur portable personnel est équipé d’un processeur Intel i5-2430M (Sandy Bridge) et d’une petite carte graphique NVIDIA Geforce GT 520MX.

J’ai donc accès à deux puces pour la partie graphique :

  • la puce NVIDIA
  • la puce Intel HD Graphics 3000

Il est possible de démarrer MATLAB soit sur l’une, soit sur l’autre.

MATLAB ne nécessitant pas de grosses ressources pour les aspects graphiques, la différence devrait surtout se sentir à l’utilisation d’OpenGL (transparence et/ou couleurs interpolées).

Il est préférable que les drivers NVIDIA et Intel soient récents et avec les panneaux de configuration qui vont avec. Pour NVIDIA, il faut d’ailleurs vérifier que le menu Bureau > Ajouter l’option « Exécuter avec le processeur graphique » au menu contextuel soit coché dans le panneau de configuration.

Sous Windows 7, il me suffit de cliquer sur Démarrer > Tous les programmes > MATLAB > R2009a et plutôt que de faire un clic gauche, je fais un clic droit pour faire apparaitre un menu « Exécuter sur le processeur graphique ». On peut faire le même clic droit directement sur l’exécutable « matlab.exe » dans le dossier d’installation de MATLAB.

Je choisi ensuite « Processeur NVIDIA » ou « Graphiques intégrés » (donc Intel).

Sous Linux, Xubuntu pour ma part, j’ai installé Bumblebee (voir ici pour les distributions Ubuntu). J’utilise ensuite la commande « optirun matlab » pour lancer MATLAB avec la puce NVIDIA.

Que ce soit sous Windows ou sous Linux, on peut vérifier que la bonne puce a été sélectionnée en faisant sous MATLAB :

s = opengl('data');
s.Vendor

J’ai mis au point un benchmark personnel et d’après les premiers résultats, la puce Intel me semble plus réactive que la puce NVIDIA sur ma configuration (i5-2430M/Geforce GT 520MX). Bien entendu, il ne s’agit en aucun cas de tirer des conclusions hâtives.

Je vais prendre le temps de rédiger et publier correctement mon petit benchmark.
Il faut aussi que j’explore les options proposées par les panneaux de configuration Intel et NVIDIA.

Je vous demanderai votre participation à ce moment. Je serais curieux de voir les « performances » du dernier chipset Intel Ivy Bridge ou des puces AMD.