All,
I seem to have hit a barrier when it comes to using chapel (at least
1.11.0, which we have installed at CSU).
The app I'm currently working on is very matrix heavy, which is backed by
arrays and regular domains.
There are many millions (maybe even billions, it is a ray tracer after all)
of matrix and matrix like object being created, and destroyed.

However, I seem to be encountering a massive memory leak.

The problem seems to be two fold:

   1. When deleted, only an incredibly small portion of memory is actually
   free'd.
   Im seeing about 15% of the used memory being recovered in a small
   benchmark where the classes only contain a single int field.
   2. The domains never get freed.
   When classes are deleted, I set my domains to an empty domain (eg {1..0}
   ) which clears out the array, however the domains for those arrays still
   remain, since they cannot be deleted ("delete not allowed on records").
   Here I see about 5% of the used memory being recovered.

(I observed this both with and without --fast)

This leads to instances where the program can leak memory on the order of
95% of machines with 30+GB of RAM, where its performance is then
obliterated by having to swap memory.

Im not really sure how to remedy this.
Is it something that is on the compilers end?

Attached are two benchmarks that I used to see this.
To observe memory usage I used top.

-Ian J. Bertolacci

Attachment: classes.chpl
Description: Binary data

Attachment: domains.chpl
Description: Binary data

------------------------------------------------------------------------------
_______________________________________________
Chapel-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-users

Reply via email to