First run of couette flow: only one CPU core and low GPU usage, is that normal?

Hi
According to the user guide, I ran the couette_flow_2d example and saw
an output like below

mahmood@orca:\~$ cp \-r /opt/PyFR\-1\.7\.5/examples/couette\_flow\_2d/ \.
mahmood@orca:\~$ cd couette\_flow\_2d/
mahmood@orca:couette\_flow\_2d$ pyfr import couette\_flow\_2d\.msh
couette\_flow\_2d\.pyfrm
/home/mahmood/\.local/lib/python3\.6/site\-packages/h5py/\_\_init\_\_\.py:36:
FutureWarning: Conversion of the second argument of issubdtype from
\`float\` to \`np\.floating\` is deprecated\. In future, it will be treated
as \`np\.float64 == np\.dtype\(float\)\.type\`\.
  from \.\_conv import register\_converters as \_register\_converters
mahmood@orca:couette\_flow\_2d$
mahmood@orca:couette\_flow\_2d$ ls
couette\_flow\_2d\.ini  couette\_flow\_2d\.msh  couette\_flow\_2d\.pyfrm
mahmood@orca:couette\_flow\_2d$ which pyfr
/usr/local/bin/pyfr
mahmood@orca:couette\_flow\_2d$ pyfr run \-b cuda \-p
couette\_flow\_2d\.pyfrm couette\_flow\_2d\.ini
/home/mahmood/\.local/lib/python3\.6/site\-packages/h5py/\_\_init\_\_\.py:36:
FutureWarning: Conversion of the second argument of issubdtype from
\`float\` to \`np\.floating\` is deprecated\. In future, it will be treated
as \`np\.float64 == np\.dtype\(float\)\.type\`\.
  from \.\_conv import register\_converters as \_register\_converters
 100\.0% \[=================================================>\] 4\.00/4\.00
ela: 00:03:35 rem: 00:00:00

Couple of things:

  1. Only one cpu core was 100%.
  2. GPU utilization according to nvidia-smi was about 30%.

Is that normal?

Regards,
Mahmood

Hi Mahmood,

Defaults for the couette_flow_2d demo are (1) small and (2) double precision.
If your GPU has good support for double precision (fp64), and lots of memory, you can use gmsh to generate a bigger mesh for that demo.

E.g., the script below makes a mesh with 25,000 quadrilateral elements. Adjust params to suit your GPU (and patience).

save as file “cflow2d.geo”, then open in gmsh

- - - - - - - -

lc = 1.00; // Q: 25,4532; [X] Recombine all triangular meshes

xmin = -100.0;
ymin = 0.0;
xmax = 100.0;
ymax = 100.0;
zall = 0.0;

Point(1) = {xmin, ymin, zall, lc};
Point(2) = {xmax, ymin, zall, lc};
Point(3) = {xmax, ymax, zall, lc};
Point(4) = {xmin, ymax, zall, lc};
//---------------------------------------
Line(1) = {1,2};
Line(2) = {2,3};
Line(3) = {3,4};
Line(4) = {4,1};
LL=newll; Line Loop(LL) = {1,2,3,4};
PS=news; Plane Surface(PS) = {LL};

// optionally, recombine triangles to quads
Recombine Surface {PS};

Physical Surface("Fluid", 1) = {PS};
Physical Line("periodic_0_r", 2) = {2};
Physical Line("periodic_0_l", 3) = {4};
Physical Line("bcwalllower", 4) = {1};
Physical Line("bcwallupper", 5) = {3};

// - - - - -
// end of file

Good luck!
Nigel