LLNL / libROM

Model reduction library with an emphasis on large scale parallelism and linear subspace methods
https://www.librom.net
Other
198 stars 36 forks source link

Memory use of `scalapack_f_wrapper::factorize()` #234

Open dreamer2368 opened 12 months ago

dreamer2368 commented 12 months ago

I'm currently playing with the example 1. Although, I'm having a memory limitation error at merge stage, which I think is somewhat strange:

test@3a4a682f99d7:~/build/examples/prom$ sudo ./poisson_global_rom -merge -ns 3
Options used:
   --mesh ../data/star.mesh
   --order 1
   --id 0 
   --nset 3
   --no-static-condensation
   --no-partial-assembly
   --frequency 1
   --coefficient 1
   --device cpu
   --visit-datafiles
   --visualization
   --no-fom
   --no-offline
   --no-online
   --merge
Device configuration: cpu
Memory configuration: host-std
Number of finite element unknowns: 82561
Opening file: basis0_snapshot.000000
Opening file: basis1_snapshot.000000
Opening file: basis2_snapshot.000000
Creating file: basis.000000
In file '/home/test/libROM/lib/linalg/scalapack_f_wrapper.f90', around line 525: Error allocating 13081962144 bytes: Cannot allocate memory

In file '/home/test/libROM/lib/linalg/scalapack_f_wrapper.f90', around line 525 corresponds to the middle of factorize() function. It's demanding about 13GB of memory for SVD operation of matrix of size (82561, 3), which probably takes about 2 MB of memory.

When I run this on a machine with a larger memory, it works as expected. Although, I'm wondering if this memory usage is an expected size.