comp.lang.ada
 help / color / mirror / Atom feed
From: Brian Drummond <brian_drummond@btconnect.com>
Subject: Re: heap size exceeded for large matrices
Date: Sun, 29 Aug 2010 16:14:52 +0100
Date: 2010-08-29T16:14:52+01:00	[thread overview]
Message-ID: <g9tk76ljou9a3in805jes6n6pg4oqtcna6@4ax.com> (raw)
In-Reply-To: 4c7a360b$0$10227$ba4acef3@reader.news.orange.fr

On Sun, 29 Aug 2010 12:27:37 +0200, Pascal Obry <pascal@obry.net> wrote:

>John,
>
>> I wish to process both real and complex large matrices eg (1..10000,
>> 1..10000)
>> I have no difficulty in increasing the storage size of a task.
>> I cannot do the same for matrices within a procedure which reports
>> that the heap is exceeded.
>
>You probably mean stack size and not heap size. In that case you need to
>add the proper linker option to increase the stack size for the application.
>
>Pascal.

I have had trouble with this in the past - the documented linker options
apparently didn't work (around the 2008 timeframe - may not still be true) and
Pragma Storage_Size only worked for new tasks, not the main program..

I resorted to dynamic allocation on the heap, and renaming to hide the pointer
dereference. So, given
my_array_type is array (positive range <>, positive range <>) of float;

I replaced

my_array: my_array_type (1..10000,  1..10000);

with

my_array_ptr : access my_array_type := new my_array_type (1..10000,  1..10000);
my_array : my_array_type renames my_array_ptr.all;

The rename meant I didn't have to rewrite anything else in the application.

- Brian




  reply	other threads:[~2010-08-29 15:14 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-29  8:50 heap size exceeded for large matrices John Raymond Dore
2010-08-29  9:51 ` Yannick Duchêne (Hibou57)
2010-08-29 10:42   ` Simon Wright
2010-08-29 15:33     ` John Raymond Dore
2010-08-29 10:27 ` Pascal Obry
2010-08-29 15:14   ` Brian Drummond [this message]
2010-08-29 16:16     ` John Raymond Dore
2010-08-29 22:06       ` Peter C. Chapin
2010-08-29 22:47         ` Brian Drummond
2010-08-30  9:45           ` Brian Drummond
2010-08-30 11:04             ` Cyrille
2010-08-30 13:01               ` System.Pool_Local.Unbounded_Reclaim_Pool (Was: heap size exceeded for large matrices) Jacob Sparre Andersen
2010-08-30 13:38                 ` Dmitry A. Kazakov
2010-08-30 14:08                   ` Robert A Duff
2010-08-30 14:14                   ` J-P. Rosen
2010-08-30  7:44         ` heap size exceeded for large matrices Natasha Kerensikova
2010-08-30  9:41           ` Brian Drummond
2010-08-30  9:55             ` Natasha Kerensikova
2010-08-30  9:55           ` Dmitry A. Kazakov
2010-08-30 10:21             ` Georg Bauhaus
2010-08-30 18:56               ` Jeffrey Carter
2010-08-30 16:55             ` Simon Wright
2010-08-30 17:00               ` Robert A Duff
2010-08-30 19:51                 ` Simon Wright
2010-08-30 16:58           ` Simon Wright
2010-08-31 17:56             ` Natasha Kerensikova
2010-08-29 17:57     ` Pascal Obry
2010-08-29 15:35   ` John Raymond Dore
2010-08-29 17:57     ` Pascal Obry
2010-08-29 19:19       ` Ludovic Brenta
2010-08-29 20:33         ` Pascal Obry
2010-08-29 21:17           ` Robert A Duff
2010-08-29 21:29             ` Ludovic Brenta
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox