Strumenti Utente

Strumenti Sito


magistraleinformaticanetworking:spm:sample_mmmdf14

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

magistraleinformaticanetworking:spm:sample_mmmdf14 [05/12/2014 alle 09:32 (11 anni fa)] – creata Massimo Torquatimagistraleinformaticanetworking:spm:sample_mmmdf14 [16/12/2014 alle 10:21 (11 anni fa)] (versione attuale) Massimo Torquati
Linea 52: Linea 52:
 // vector multiplication // vector multiplication
 void mm(const size_t N, double *Cij, const double *A, const double *B) { void mm(const size_t N, double *Cij, const double *A, const double *B) {
-    *Cij=0;+    double C=0;
     for(size_t k=0;k<N;++k) {     for(size_t k=0;k<N;++k) {
-        *Cij += A[k]*B[k];+        += A[k]*B[k];
     }     }
 +    *Cij = C;
 } }
 void printarray(const double *A, const size_t N) { void printarray(const double *A, const size_t N) {
Linea 83: Linea 84:
     for(size_t i=0;i<N; ++i) {     for(size_t i=0;i<N; ++i) {
         double *Ai         = &A[i*N];         double *Ai         = &A[i*N];
-        const param_info _1={(uintptr_t)Ai,INPUT}; +        const param_info _1={(uintptr_t)Ai,OUTPUT}; 
-        const param_info _2={(uintptr_t)Ai,OUTPUT}; +        Param.push_back(_1);  
-        Param.push_back(_1); Param.push_back(_2); +
         mdf->AddTask(Param, initA, N, i, Ai);         mdf->AddTask(Param, initA, N, i, Ai);
  
         Param.clear();         Param.clear();
         double *Bi       = &B[i*N];         double *Bi       = &B[i*N];
-        const param_info _11={(uintptr_t)Bi,INPUT}; +        const param_info _11={(uintptr_t)Bi,OUTPUT}; 
-        const param_info _22={(uintptr_t)Bi,OUTPUT}; +        Param.push_back(_11);  
-        Param.push_back(_11); Param.push_back(_22); +
         mdf->AddTask(Param, initB, N, i, Bi);         mdf->AddTask(Param, initB, N, i, Bi);
     }     }
Linea 104: Linea 103:
             const param_info _1 ={(uintptr_t)Ai, INPUT};             const param_info _1 ={(uintptr_t)Ai, INPUT};
             const param_info _2 ={(uintptr_t)Bi, INPUT};             const param_info _2 ={(uintptr_t)Bi, INPUT};
-            const param_info _3 ={(uintptr_t)Cij,OUTPUT}; +            Param.push_back(_1); Param.push_back(_2); 
-            Param.push_back(_1); Param.push_back(_2); Param.push_back(_3);+
             mdf->AddTask(Param, mm, N, Cij, Ai, Bi);                         mdf->AddTask(Param, mm, N, Cij, Ai, Bi);            
         }           }  
magistraleinformaticanetworking/spm/sample_mmmdf14.1417771961.txt.gz · Ultima modifica: 05/12/2014 alle 09:32 (11 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki