Mantis - ALGLIB
Viewing Issue Advanced Details
776 General minor have not tried 2017-12-24 13:19 2018-05-08 12:33
SergeyB  
SergeyB  
normal  
resolved  
fixed  
none    
none 3.14.0  
Unspecified
0000776: FIXED: memory leak in the heavily threaded code utilizing Intel MKL
=== Problem description ===

Intel MKL in its default configuration allocates thread-local buffer storage which is used to accelerate computations (create aligned copies of data). The problem is that this buffer is not deallocated after exit from MKL - just for the case same thread will call MKL one more time.

When application spawns many threads, it results in creation of multiple thread-local buffers; when many threads are spawned constantly (as it happens with some threading frameworks, including NET Task Parallel Library) it results in steadily growing memory consumption.

To be exact, memory is not actually lost - it can be freed with just one call of mkl_free_buffers(). However, such behavior is still undesirable.

=== Solution ==

A watchdog thread starts on MKL startup which performs periodic (once in a few seconds) cleanup of unused buffers.
Issue History
2017-12-24 13:19 SergeyB New Issue
2017-12-24 13:19 SergeyB Status new => assigned
2017-12-24 13:19 SergeyB Assigned To => SergeyB
2017-12-24 13:19 SergeyB Programming language => Unspecified
2017-12-24 13:19 SergeyB Status assigned => resolved
2017-12-24 13:19 SergeyB Fixed in Version => 3.13.0
2017-12-24 13:19 SergeyB Resolution open => fixed
2018-04-03 14:01 SergeyB Status resolved => assigned
2018-04-03 14:02 SergeyB Resolution fixed => open
2018-04-03 14:02 SergeyB Fixed in Version 3.13.0 =>
2018-04-03 14:02 SergeyB Target Version 3.13.0 => 3.14.0
2018-05-08 12:32 SergeyB Description Updated
2018-05-08 12:33 SergeyB Status assigned => resolved
2018-05-08 12:33 SergeyB Fixed in Version => 3.14.0
2018-05-08 12:33 SergeyB Resolution open => fixed

There are no notes attached to this issue.