"ccsd t: MA error sgl"


Click here for full thread
Gets Around
Quote:Chiensh Aug 24th 10:39 am

I understand it not possible to change memory allocation during the calculation currently, but is it possible to add this feature in future?


NWChem uses the MA slack suballocator for a number of reasons, some of which are historical (malloc was slow in the past) and some of which pertain to how ARMCI supports RDMA (the MA slack can be registered with the network up-front, eliminating the need to use a page-registration cache).

It is possible to replace MA allocation in TCE with Fortran allocatable, which is usually a wrapper around malloc and thus has all of the positive and negative features of normal dynamic memory allocation. I have already started doing for KNL MCDRAM, although it should work in other contexts. You can switch the parts of TCE that have this already by setting USE_F90_ALLOCATABLE in your environment at compile time.

Only three parts of TCE support Fortran allocatable right now, but one of them is the part that you are seeing crashing (see src/tce/ccsd_t/ccsd_t.F line 105 in the svn trunk).

Note that using Fortran allocatable may have a negative impact on the performance of GA communication on some networks. As communication is not the bottleneck in the triples portion of CCSD(T), it should not be noticeable, but I mention it anyways.

Anyways, this Fortran allocatable stuff is a recent development and currently not targeted to be the default. I am only doing it because of KNL, hence you should not expect to see it implemented holistically unless PNNL makes a decision to move away from MA.