<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-text-html" lang="x-western"> <font size="-1">Hi
Andrea and Kshitij,<br>
<br>
I have tested the solutions you both offered, but they didn't
improve the situation. <br>
Doing a trace_on() when a gradient is required, or first
iteration only, causes the minimisation results to get worse,
but execution time is 18 seconds.<br>
Increasing the buffer size stopped the file I/O but this didn't
help execution time. <br>
<br>
Attached to this email are the binaries I have been using and
configuration files to run them if you're interested.<br>
Below are the results of each configuration and test:<br>
<br>
Binary: isam_adolc18.exe (ADOLC version 1.8)<br>
Process memory usage: 20MB<br>
Files created: none<br>
Extra notes: does run trace_on() / trace_off() on every
iteration<br>
Execution time: 3 seconds<br>
<br>
Binary: isam_adolc_2.5.2.exe<br>
Process memory usage: 8-10MB<br>
Files created:<br>
ADOLC-Locations_0.tap (0 - 10MB)<br>
ADOLC-Operations_0.tap (0 - 1MB)<br>
ADOLC-Taylors_0.tap (0kbs)<br>
Extra notes: first 2-3 iterations run almost instantly, then
they slow down to 3-4 seconds each<br>
Execution time: 2.9 minutes<br>
<br>
Binary: isam_increased_buffer.exe<br>
New buffer sizes: 134217728<br>
Process memory usage: 21-22MB<br>
Files created: none<br>
Extra notes: first 2-3 iterations run almost instantly, then
they slow down to 3-4 seconds each<br>
Execution time: 2.8 minutes<br>
<br>
Binary: isam_adolc_2_5_2.exe (with adolrc)<br>
Process memory usage: 21-22MB<br>
Files created: none<br>
New buffer values:<br>
"OBUFSIZE" = "512000000"<br>
"LBUFSIZE" = "512000000"<br>
"VBUFSIZE" = "512000000"<br>
"TBUFSIZE" = "512000000"<br>
Extra notes: first 2-3 iterations run almost instantly, then
they slow down to 3-4 seconds each<br>
Execution time: 2.8 minutes<br>
<br>
Binary: isam_adolc_2_5_2_trace_on_when_gradient_required.exe<br>
Process memory usage: 21-22MB<br>
Files created: None<br>
Extra notes: this is also using a compiled increased buffer
size, <br>
Extra notes: </font><font size="-1"><font size="-1">first 2-3
iterations run almost instantly, then they slow down to 3-4
seconds each</font></font><br>
<font size="-1"><font size="-1"><font size="-1"><font size="-1"><font
size="-1">Extra notes: Minimisation did not match the
results of the other binaries. They were 1998.5 and this
is 2647.97 so considerably worse<br>
</font></font></font></font>Execution time: 18 seconds<br>
<br>
Binary: isam_adolc_2_5_2_trace_only_first_iteration.exe<br>
Process memory usage: 21-22MB<br>
Files created: None<br>
Extra notes: this is also using a compiled increased buffer size</font><br>
<font size="-1"><font size="-1">Extra notes: </font><font
size="-1"><font size="-1">first 2-3 iterations run almost
instantly, then they slow down to 3-4 seconds each<br>
Extra notes: Minimisation did not match the results of the
other binaries. They were 1998.5 and this is 2647.97 so
considerably worse<br>
</font></font>Execution time: 18 seconds<br>
<br>
Thanks heaps for your help. I hope I can get this resolved so I
can make ADOLC the default auto-diff library for the new
modelling platform.<br>
<br>
Regards,<br>
Scott<br>
</font><br>
</div>
<div class="moz-cite-prefix">On 19/11/2014 8:09 p.m., Andrea Walther
wrote:<br>
</div>
<blockquote cite="mid:546C420E.1040404@uni-paderborn.de" type="cite">Hi
Scott,
<br>
<br>
<blockquote type="cite">I notice it writes to files A LOT and not
a huge amount of data (any
<br>
flags to keep this in memory?)
<br>
</blockquote>
<br>
that is most probably the reason why the current version is so
slow.
<br>
It is really important to avoid the writting on disc to get a
reasonable speed.
<br>
<br>
In the directory
<br>
<br>
.../ADOL-C/include/adolc/internal
<br>
<br>
there is a file
<br>
<br>
usrparms.h
<br>
<br>
There you can increase the buffer size for
<br>
<br>
OBUFSIZE
<br>
LBUFSIZE
<br>
VBUFSIZE
<br>
TBUFSIZE
<br>
<br>
to such a large value that the files are not written on disc.
<br>
Alternatively you could use a
<br>
<br>
.adolcrc
<br>
<br>
file. I attach an example file. This would avoid the recompilation
<br>
if you have to change the buffer sizes.
<br>
<br>
And finally it is important that you use
<br>
<br>
trace_off()
<br>
<br>
and do NOT use
<br>
<br>
trace_off(1) or something like that
<br>
<br>
because this would force ADOL-C to write the files on disc.
<br>
<br>
Hope this helps. Otherwise just email again.
<br>
<br>
Best regards
<br>
<br>
Andrea
<br>
<br>
</blockquote>
<br>
</body>
</html>