[Scilab-users] advices in optimizing matrix calculations

Carrico, Paul paul.carrico at esterline.com
Tue Sep 25 10:20:53 CEST 2012


Dear Serge,
 
thanks for this first answer ...
... thus I've understood :
- it'll be necessary to build first the full form of each 6x6 matrix in order to compute eigen values and so on (need to optimize chronology in order to make it only ounce)
- it might be relevant to have a look in parallel postprocessing (I've up to 8 cores in my working station),
- concerning vectorization, I need to have a deeper look on it in order to understand what is it, when it's relevant to use it and when we can not
 
Regards
 
Paul
 

________________________________

De : users-bounces at lists.scilab.org [mailto:users-bounces at lists.scilab.org] De la part de Serge Steer
Envoyé : mardi 25 septembre 2012 10:11
À : International users mailing list for Scilab.
Objet : Re: [Scilab-users] advices in optimizing matrix calculations


Le 24/09/2012 22:46, Paul Carrico a écrit :


	Dear all,

	

	

	May I ask some advice in matrix calculation issue, in order to optimize the code ?

	

	The matrix hereafter is the first trial in treating a (m x 6) matrix where :

	 - The first line is the upper part of a symmetrical 6x6 tensor (the 3 first components are the diagonal terms)

	 - m may correspond to millions of lines

	 - each line is independent from the other)

	

	I had a look in some function (such as schur, spec, bdiag and so on) in order to see if I can use this symmetrical specificity ... but I don't see anything è Am I wrong ?

	

The schur, spec, bdiag function internally check if the matrix is symmetric and if yes apply specific algorithm. But the matrix must be passed in its full form.



	Several calculations will be done: Eigen values calculation for each submatrix, summation, multiplication and so on ...

	

	Vectorization can be useful to improve speedup ?

I did not see any possible vectorization  (there is no way to compute several schur decompositions with only one call to a primitive function)
If you have a multicore processor you can try the parallel_run function.

Serge Steer
INRIA


	

	

	Any advices ?

	

	Thanks in advance

	

	Paul

	

	PS : M is made from a text file ... its structure can be change in order to be as efficient as possible ...

	

	Mat = [

	    9.315        9.315        28.41  - 0.0000999  - 3.169      - 3.169     ; 
	    2.945        2.945        28.45    0.04826    - 3.175      - 3.175      ;
	    8.486        9.341        25.73    0.0101     - 3.179      - 3.189      ;
	    2.043        2.939        25.73    0.038      - 3.185      - 3.182      ;
	    9.341        8.486        25.73    0.0101     - 3.189      - 3.179      ;
	    2.939        2.043        25.73    0.038      - 3.182      - 3.185      ;
	    8.492        8.492        23.      0.02036    - 3.179      - 3.179      ;
	    2.018        2.018        22.97    0.02779    - 3.172      - 3.172     ;
	    9.108        8.179        25.01    0.01326    - 3.197      - 1.608     ;
	    4.695        2.302        25.04    0.0905     - 3.199      - 1.61       ;
	    8.271        8.186        22.27    0.02824    - 3.212      - 1.601     ; 
	    3.842        2.302        22.29    0.07548    - 3.214      - 1.599     ; 
	    9.134        8.128        24.91    0.01554    - 3.278      - 1.61      ;       
	    4.675        2.145        24.9     0.08819    - 3.276      - 1.612     ;   

	    ...

	    ...   
	    8.291        8.129        22.16    0.03055    - 3.263      - 1.598  ] ;

	    sub11        sub22       sub33    sub12        sub23       sub13 ... where sub is a submatrix == 1 line

	


	 
	
	_______________________________________________
	users mailing list
	users at lists.scilab.org
	http://lists.scilab.org/mailman/listinfo/users



--------------------------------------------------------------------------------


Le présent mail et ses pièces jointes sont confidentiels et destinés à la personne ou aux personnes visée(s) ci-dessus. Si vous avez reçu cet e-mail par erreur, veuillez contacter immédiatement l'expéditeur et effacer le message de votre système. Toute divulgation, copie ou distribution de cet e-mail est strictement interdite.

This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error, please contact the sender and delete the email from your system. If you are not the named addressee you should not disseminate, distribute or copy this email.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20120925/0c370c0c/attachment.htm>


More information about the users mailing list