1 #include <petscvec.h> 2 #include <petsctime.h> 3 4 int main(int argc, char **argv) 5 { 6 Vec x; 7 PetscReal norm; 8 PetscLogDouble t1, t2; 9 PetscInt n = 10000; 10 11 PetscCall(PetscInitialize(&argc, &argv, 0, 0)); 12 PetscCall(PetscOptionsGetInt(NULL, NULL, "-n", &n, NULL)); 13 14 PetscCall(VecCreate(PETSC_COMM_SELF, &x)); 15 PetscCall(VecSetSizes(x, n, n)); 16 PetscCall(VecSetFromOptions(x)); 17 18 PetscPreLoadBegin(PETSC_TRUE, "VecNorm"); 19 PetscCall(PetscTime(&t1)); 20 PetscCall(VecNorm(x, NORM_2, &norm)); 21 PetscCall(VecNorm(x, NORM_2, &norm)); 22 PetscCall(VecNorm(x, NORM_2, &norm)); 23 PetscCall(VecNorm(x, NORM_2, &norm)); 24 PetscCall(VecNorm(x, NORM_2, &norm)); 25 PetscCall(VecNorm(x, NORM_2, &norm)); 26 PetscCall(VecNorm(x, NORM_2, &norm)); 27 PetscCall(VecNorm(x, NORM_2, &norm)); 28 PetscCall(VecNorm(x, NORM_2, &norm)); 29 PetscCall(VecNorm(x, NORM_2, &norm)); 30 PetscPreLoadEnd(); 31 PetscCall(PetscTime(&t2)); 32 fprintf(stdout, "%s : \n", "VecNorm"); 33 fprintf(stdout, " Time %g\n", t2 - t1); 34 PetscCall(PetscFinalize()); 35 return 0; 36 } 37