OSDN Git Service

Initial Commit
[qcad/qcad.git] / qclibmpi / main.cc
1 //---------------------------------------------------------\r
2 // Samplefile for qclibmpi\r
3 // usage:\r
4 // % make\r
5 // % mpirun -np [2|4|8] ./ap\r
6 //---------------------------------------------------------\r
7 #include <stdio.h>\r
8 #include <mpi.h>\r
9 #include "QC_all.h"\r
10 \r
11 //---------------------------------------------------------\r
12 int main(int argc, char *argv[])\r
13 {\r
14     int ierr, myid, numprocs;\r
15     MPI_Init(&argc, &argv);\r
16     MPI_Comm_rank(MPI_COMM_WORLD, &myid);\r
17     MPI_Comm_size(MPI_COMM_WORLD, &numprocs);\r
18     const int NQUBITS = 8;\r
19     int mdata = QCalcUnit::initmpi(NQUBITS,myid,numprocs);\r
20 \r
21     double *R = new double[mdata];\r
22     double *I = new double[mdata];\r
23     //init:\r
24     QCalcUnit::initdata(R, I);\r
25     QC_hadamard::calcmpi(0,R,I,NQUBITS);\r
26 //    QCalcUnit::showdata(R, I);\r
27     if(0==myid){\r
28       for(int i=0;i<mdata;i++){\r
29         printf("%02i: %f %f\n",i,R[i],I[i]);\r
30       }\r
31     }\r
32     delete I;\r
33     delete R;\r
34     MPI_Finalize();\r
35     return 0;\r
36 }\r
37 //---------------------------------------------------------\r