[petsc-users] Performance problem about output mesh in vtk format

Matthew Knepley knepley at gmail.com
Sun Nov 5 21:02:16 CST 2023


On Sun, Nov 5, 2023 at 9:54 PM Gong Yujie <yc17470 at connect.um.edu.mo> wrote:

> Dear PETSc developers,
>
> I'm trying to output a result data in vtk format and find that it is quite
> slow. Then I try to check this issue by a simple test code:
>
> * PetscCall(PetscInitialize(&argc,&argv,(char*)0,NULL));*
> * DM dm,dmParallel,dmAux;*
> * PetscBool interpolate=PETSC_TRUE;*
> *
> PetscCall(DMPlexCreateExodusFromFile(PETSC_COMM_WORLD,"artery_plaque.exo",interpolate,&dm));*
> * PetscCall(DMViewFromOptions(dm,NULL,"-dm_view"));*
> * PetscCall(PetscFinalize());*
> and run with *./dm_test -dm_view vtk:./ksp_data/abc.vtk -log_view*
>
> It took about 600s to output the mesh. I'm not sure if there is something
> wrong in my code or my configuration of PETSc. Could you please give me
> some advice on this?
>

VTK is an ASCII format, and the mesh is not small. The file size may be
causing problems on your system. What if you choose VTU instead? I now
mostly use HDF5, and the utility that creates an XDMF to match it.

  Thanks,

     Matt


> Best Regards,
> Yujie
>
> P.S. The result for log_view
> ****************************************************************************************************************************************************************
>
> ***                                WIDEN YOUR WINDOW TO 160 CHARACTERS.
> Use 'enscript -r -fCourier9' to print this document
>         ***
>
> ****************************************************************************************************************************************************************
>
> ------------------------------------------------------------------ PETSc
> Performance Summary:
> ------------------------------------------------------------------
>
> ./dm_test on a arch-linux-c-opt named DESKTOP-0H8HCOD with 1 processor, by
> qingfeng Mon Nov  6 10:43:31 2023
> Using Petsc Release Version 3.19.5, unknown
>
>                          Max       Max/Min     Avg       Total
> Time (sec):           6.286e+02     1.000   6.286e+02
> Objects:              1.400e+02     1.000   1.400e+02
> Flops:                0.000e+00     0.000   0.000e+00  0.000e+00
> Flops/sec:            0.000e+00     0.000   0.000e+00  0.000e+00
> MPI Msg Count:        0.000e+00     0.000   0.000e+00  0.000e+00
> MPI Msg Len (bytes):  0.000e+00     0.000   0.000e+00  0.000e+00
> MPI Reductions:       0.000e+00     0.000
>
> Flop counting convention: 1 flop = 1 real number operation of type
> (multiply/divide/add/subtract)
>                             e.g., VecAXPY() for real vectors of length N
> --> 2N flops
>                             and VecAXPY() for complex vectors of length N
> --> 8N flops
>
> Summary of Stages:   ----- Time ------  ----- Flop ------  --- Messages
> ---  -- Message Lengths --  -- Reductions --
>                         Avg     %Total     Avg     %Total    Count
> %Total     Avg         %Total    Count   %Total
>  0:      Main Stage: 6.2859e+02 100.0%  0.0000e+00   0.0%  0.000e+00
> 0.0%  0.000e+00        0.0%  0.000e+00   0.0%
>
>
> ------------------------------------------------------------------------------------------------------------------------
> See the 'Profiling' chapter of the users' manual for details on
> interpreting output.
> Phase summary info:
>    Count: number of times phase was executed
>    Time and Flop: Max - maximum over all processors
>                   Ratio - ratio of maximum to minimum over all processors
>    Mess: number of messages sent
>    AvgLen: average message length (bytes)
>    Reduct: number of global reductions
>    Global: entire computation
>    Stage: stages of a computation. Set stages with PetscLogStagePush() and
> PetscLogStagePop().
>       %T - percent time in this phase         %F - percent flop in this
> phase
>       %M - percent messages in this phase     %L - percent message lengths
> in this phase
>       %R - percent reductions in this phase
>    Total Mflop/s: 10e-6 * (sum of flop over all processors)/(max time over
> all processors)
>
> ------------------------------------------------------------------------------------------------------------------------
> Event                Count      Time (sec)     Flop
>        --- Global ---  --- Stage ----  Total
>                    Max Ratio  Max     Ratio   Max  Ratio  Mess   AvgLen
>  Reduct  %T %F %M %L %R  %T %F %M %L %R Mflop/s
>
> ------------------------------------------------------------------------------------------------------------------------
>
> --- Event Stage 0: Main Stage
>
> DMPlexInterp           1 1.0 3.1186e+00 1.0 0.00e+00 0.0 0.0e+00 0.0e+00
> 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
> DMPlexStratify         3 1.0 4.2802e-02 1.0 0.00e+00 0.0 0.0e+00 0.0e+00
> 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
> DMPlexSymmetrize       3 1.0 1.0806e-01 1.0 0.00e+00 0.0 0.0e+00 0.0e+00
> 0.0e+00  0  0  0  0  0   0  0  0  0  0     0
>
> ------------------------------------------------------------------------------------------------------------------------
>
> Object Type          Creations   Destructions. Reports information only
> for process 0.
>
> --- Event Stage 0: Main Stage
>
>            Container     2              1
>     Distributed Mesh     5              3
>             DM Label    20              8
>            Index Set    64             52
>              Section    17             12
>    Star Forest Graph    10              7
>      Discrete System     7              5
>            Weak Form     7              5
>     GraphPartitioner     3              2
>               Matrix     2              1
>               Vector     1              0
>               Viewer     2              1
>
> ========================================================================================================================
> Average time to get PetscTime(): 1.8e-08
> #PETSc Option Table entries:
> -dm_view vtk:./ksp_data/abc.vtk # (source: command line)
> -log_view # (source: command line)
> #End of PETSc Option Table entries
> Compiled without FORTRAN kernels
> Compiled with full precision matrices (default)
> sizeof(short) 2 sizeof(int) 4 sizeof(long) 8 sizeof(void*) 8
> sizeof(PetscScalar) 8 sizeof(PetscInt) 4
> Configure options: --with-debugging=0 --with-strict-petscerrorcode
> --download-openmpi --download-metis --download-exodusii --download-parmetis
> --download-netcdf --download-pnetcdf --download-hdf5 --download-zlib
> --download-superlu --download-superlu_dist --download-triangle
> --download-cmake --download-fblaslapack --download-slepc
> -----------------------------------------
> Libraries compiled on 2023-09-15 02:34:25 on DESKTOP-0H8HCOD
> Machine characteristics:
> Linux-5.10.16.3-microsoft-standard-WSL2-x86_64-with-glibc2.29
> Using PETSc directory: /home/qingfeng/petsc/optpetsc3-19-5/petsc
> Using PETSc arch: arch-linux-c-opt
> -----------------------------------------
>
> Using C compiler:
> /home/qingfeng/petsc/optpetsc3-19-5/petsc/arch-linux-c-opt/bin/mpicc  -fPIC
> -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch
> -fstack-protector -fvisibility=hidden -g -O
> Using Fortran compiler:
> /home/qingfeng/petsc/optpetsc3-19-5/petsc/arch-linux-c-opt/bin/mpif90
>  -fPIC -Wall -ffree-line-length-none -ffree-line-length-0
> -Wno-lto-type-mismatch -Wno-unused-dummy-argument -g -O
>
> -----------------------------------------
>
> Using include paths: -I/home/qingfeng/petsc/optpetsc3-19-5/petsc/include
> -I/home/qingfeng/petsc/optpetsc3-19-5/petsc/arch-linux-c-opt/include
> -----------------------------------------
>
> Using C linker:
> /home/qingfeng/petsc/optpetsc3-19-5/petsc/arch-linux-c-opt/bin/mpicc
> Using Fortran linker:
> /home/qingfeng/petsc/optpetsc3-19-5/petsc/arch-linux-c-opt/bin/mpif90
> Using libraries:
> -Wl,-rpath,/home/qingfeng/petsc/optpetsc3-19-5/petsc/arch-linux-c-opt/lib
> -L/home/qingfeng/petsc/optpetsc3-19-5/petsc/arch-linux-c-opt/lib -lpetsc
> -Wl,-rpath,/home/qingfeng/petsc/optpetsc3-19-5/petsc/arch-linux-c-opt/lib
> -L/home/qingfeng/petsc/optpetsc3-19-5/petsc/arch-linux-c-opt/lib
> -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/9
> -L/usr/lib/gcc/x86_64-linux-gnu/9 -lsuperlu -lsuperlu_dist -lflapack
> -lfblas -lexoIIv2for32 -lexodus -lnetcdf -lpnetcdf -lhdf5_hl -lhdf5
> -lparmetis -lmetis -ltriangle -lm -lz -ldl -lmpi_usempif08
> -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lgfortran -lm -lgfortran -lm
> -lgcc_s -lquadmath -lpthread -lstdc++ -ldl
> -----------------------------------------
>
> The mesh information:
> DM Object: Created by ICEMCFD - EXODUS II Interface 1 MPI process
>   type: plex
> Created by ICEMCFD - EXODUS II Interface in 3 dimensions:
>   Number of 0-cells per rank: 134549
>   Number of 1-cells per rank: 841756
>   Number of 2-cells per rank: 1366008
>   Number of 3-cells per rank: 658801
> Labels:
>   celltype: 4 strata with value/size (0 (134549), 6 (658801), 3 (1366008),
> 1 (841756))
>   depth: 4 strata with value/size (0 (134549), 1 (841756), 2 (1366008), 3
> (658801))
>   Cell Sets: 2 strata with value/size (1 (604426), 2 (54375))
>   Vertex Sets: 5 strata with value/size (3 (481), 4 (27248), 5 (20560), 6
> (653), 7 (2370))
>   Face Sets: 5 strata with value/size (8 (740), 9 (54206), 10 (40857), 11
> (999), 12 (4534))
>   SMALLER: 1 strata with value/size (8 (740))
>   OUTER: 1 strata with value/size (9 (54206))
>   INNER: 1 strata with value/size (10 (40857))
>   BIGGER: 1 strata with value/size (11 (999))
>
>

-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20231105/66c60c64/attachment.html>


More information about the petsc-users mailing list