Bonjour à tous,
je me pose une grande question : est il possible de sélectionner le processeur sur lequel va s'exécuter une MEX?
Voici mon problème : je dispose de deux matrices rectangulaires 100*200 contenant les coordonnées x,y d'un ensemble de point. chacun de ces points passe ensuite par un simulateur de trajectoire qui me calcule tout pleins de paramètres, que je stocke dans une matrice de resultats de la forme 100*200*Nparametres.
Chaque trajectoire étant indépendante, ce problème peut être parallélisable. Néanmoins, je ne dispose pas de la Parallel Computing Toolbox et le temps que ma boite se la procure, je serai parti vers d'autres cieux plus cléments. Mon boss souhaite savoir si quand on appelle une MEX, on peut lui spécifier le proc sur lequel s'executer... même si ça ne fera au final pas une grande différence en terme de temps de calcul.
En farfouillant un peu sur le forum j'ai trouvé un autre sujet qui parlait de ça, avec un petit test de la forme :
Possédant Matlab R2012b, il me renvoie un warning
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 n = 5000; A = rand(n); B = rand(n); clc for n = 1:4 clear C maxNumCompThreads(n); tic C = A*B; toc end
et les resultats sont exactement les mêmes quelque soit la valeur de maxNumCompThreads.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4Warning: maxNumCompThreads will be removed in a future release. Please remove any instances of this function from your code. > In maxNumCompThreads at 27 In thread at 10
Mon ordi a a priori 4 coeurs
Partager