When we run this program in 2D for quadratic ($Q_2$) elements, we get the
following output (when run on one core in release mode):
@code
-Vectorization over 2 doubles = 128 bits (SSE2), VECTORIZATION_LEVEL=1
+Vectorization over 2 doubles = 128 bits (SSE2)
Cycle 0
Number of degrees of freedom: 81
Total setup time (wall) 0.00159788s
approximately eight times as many degrees of freedom with each cycle:
@code
-Vectorization over 2 doubles = 128 bits (SSE2), VECTORIZATION_LEVEL=1
+Vectorization over 2 doubles = 128 bits (SSE2)
Cycle 0
Number of degrees of freedom: 125
Total setup time (wall) 0.00231099s
following program output:
@code
-Vectorization over 2 doubles = 128 bits (SSE2), VECTORIZATION_LEVEL=1
+Vectorization over 2 doubles = 128 bits (SSE2)
Cycle 0
Number of degrees of freedom: 729
Total setup time (wall) 0.00633097s
another round of mesh refinement in the lower order methods:
@code
-Vectorization over 2 doubles = 128 bits (SSE2), VECTORIZATION_LEVEL=1
+Vectorization over 2 doubles = 128 bits (SSE2)
Cycle 0
Number of degrees of freedom: 4913
Total setup time (wall) 0.0842004s
\$ make run
Number of MPI ranks: 1
Number of threads on each rank: 24
-Vectorization over 4 doubles = 256 bits (AVX), VECTORIZATION_LEVEL=2
+Vectorization over 4 doubles = 256 bits (AVX)
Number of global active cells: 15412
Number of degrees of freedom: 249065
\$ make run
Number of MPI ranks: 1
Number of threads on each rank: 24
-Vectorization over 4 doubles = 256 bits (AVX), VECTORIZATION_LEVEL=2
+Vectorization over 4 doubles = 256 bits (AVX)
Number of global active cells: 17592
Number of degrees of freedom: 1193881
\$ mpirun -n 24 ./step-48
Number of MPI ranks: 24
Number of threads on each rank: 1
-Vectorization over 4 doubles = 256 bits (AVX), VECTORIZATION_LEVEL=2
+Vectorization over 4 doubles = 256 bits (AVX)
...
Performed 1706 time steps.
Average wallclock time per time step: 0.0051747s
\$ mpirun -n 12 ./step-48
Number of MPI ranks: 12
Number of threads on each rank: 2
-Vectorization over 4 doubles = 256 bits (AVX), VECTORIZATION_LEVEL=2
+Vectorization over 4 doubles = 256 bits (AVX)
...
Performed 1706 time steps.
Average wallclock time per time step: 0.0056651s