<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Hello,<br>
<br>
Ok, I will try dynamic link since I want the project to stay into
the Scilab world, but another alternative is Julia
(<a class="moz-txt-link-freetext" href="http://julialang.org/">http://julialang.org/</a>). I have made some tests this night and got
a speedup of 25, the explanation is JIT compilation. Maybe will we
have JIT compilation in Scilab 6 ?<br>
<br>
Best regards,<br>
<br>
S.<br>
<br>
Le 24/04/2015 09:30, <a class="moz-txt-link-abbreviated" href="mailto:aweeks@hidglobal.com">aweeks@hidglobal.com</a> a écrit :<br>
</div>
<blockquote
cite="mid:OF0ADF46E4.2C97D174-ON80257E31.002704B9-80257E31.0029358A@prox.com"
type="cite"><font face="sans-serif" size="2">Hello Stephane,</font>
<br>
<br>
<font face="sans-serif" size="2">We have a Scilab program which
performs
a numerical integration on data points in 3-dimensions - it has
two
nested loops. When the number of data points was large this was
slow
so we implemented the calculation function in C and got a speed
improvement
of about 24 times !</font>
<br>
<br>
<font face="sans-serif" size="2">We also found three other
improvements:</font>
<br>
<br>
<font face="sans-serif" size="2"> using
pointer arithmetic was faster than 'for' loops,</font>
<br>
<font face="sans-serif" size="2"> 'pow(x,
2)' was faster than x*x,</font>
<br>
<font face="sans-serif" size="2"> handling
the data as 3 (N x 1) vectors was faster than using 1 (N x 3)
matrix.</font>
<br>
<br>
<font face="sans-serif" size="2">each of these giving something
like
a 3-4% improvement - small compared to x24 but still worth
having.</font>
<br>
<br>
<font face="sans-serif" size="2">If you don't mind tackling the
dynamic
linking it's probably worth the effort if you'll use this
program a few
times - good luck.</font>
<br>
<br>
<font face="sans-serif" size="2">Adrian.</font>
<br>
<font face="sans-serif" size="2"><br>
</font>
<table>
<tbody>
<tr>
<td><font color="#2f2f2f" face="Arial" size="2"><b>Adrian
Weeks </b></font><font color="#5f5f5f" face="Arial"
size="1"><br>
Development Engineer, Hardware Engineering EMEA<br>
Office: +44 (0)2920 528500 | Desk: +44 (0)2920 528523 |
Fax: +44 (0)2920
520178</font><font color="blue" face="Arial" size="1"><u><br>
</u></font><a moz-do-not-send="true"
href="mailto:aweeks@hidglobal.com"><font color="blue"
face="Arial" size="1"><u>aweeks@hidglobal.com</u></font></a><font
color="#5f5f5f" face="Arial" size="1"><br>
</font>
</td>
</tr>
<tr>
<td><a moz-do-not-send="true"
href="http://www.hidglobal.com/"><img
src="cid:part2.05030504.00030305@utc.fr" alt="HID
Global Logo" height="48" width="312"></a>
</td>
</tr>
<tr>
<td><font color="#5f5f5f" face="Arial" size="1">Unit 3, Cae
Gwyrdd,<br>
Green meadow Springs,<br>
Cardiff, UK,<br>
CF15 7AB.</font><font color="blue" face="Arial" size="1"><u><br>
</u></font><a moz-do-not-send="true"
href="http://www.hidglobal.com/"><font color="blue"
face="Arial" size="1"><u>www.hidglobal.com</u></font></a></td>
</tr>
</tbody>
</table>
<br>
<br>
<br>
<br>
<table width="100%">
<tbody>
<tr valign="top">
<td><font color="#5f5f5f" face="sans-serif" size="1">From:</font>
</td>
<td><font face="sans-serif" size="1">Stéphane Mottelet
<a class="moz-txt-link-rfc2396E" href="mailto:stephane.mottelet@utc.fr"><stephane.mottelet@utc.fr></a></font>
</td>
</tr>
<tr valign="top">
<td><font color="#5f5f5f" face="sans-serif" size="1">To:</font>
</td>
<td><font face="sans-serif" size="1">"International users
mailing list
for Scilab." <a class="moz-txt-link-rfc2396E" href="mailto:users@lists.scilab.org"><users@lists.scilab.org></a></font>
</td>
</tr>
<tr valign="top">
<td><font color="#5f5f5f" face="sans-serif" size="1">Date:</font>
</td>
<td><font face="sans-serif" size="1">23/04/2015 22:52</font>
</td>
</tr>
<tr valign="top">
<td><font color="#5f5f5f" face="sans-serif" size="1">Subject:</font>
</td>
<td><font face="sans-serif" size="1">[Scilab-users] Ways to
speed up simple
things in Scilab ?</font>
</td>
</tr>
<tr valign="top">
<td><font color="#5f5f5f" face="sans-serif" size="1">Sent
by:</font>
</td>
<td><font face="sans-serif" size="1">"users"
<a class="moz-txt-link-rfc2396E" href="mailto:users-bounces@lists.scilab.org"><users-bounces@lists.scilab.org></a></font></td>
</tr>
</tbody>
</table>
<br>
<hr noshade="noshade">
<br>
<br>
<br>
<tt><font size="2">Hello,<br>
<br>
I am currently working on a project where Scilab code is
automatically
<br>
generated, and after many code optimization, the remaining
bottleneck is
<br>
the time that Scilab spends to execute simple code like this
(full <br>
script (where the vector has 839 lines) with timings is
attached) :<br>
<br>
M1_v=[v(17)<br>
v(104)<br>
v(149)<br>
-(v(18)+v(63)+v(103))<br>
-(v(18)+v(63)+v(103))<br>
v(17)<br>
...<br>
v(104)<br>
v(149)<br>
]<br>
<br>
This kind of large vectors are the used to build a sparse
matrix each <br>
time the vector v changes, but with a constant sparsity
pattern. <br>
Actually, the time spent by Scilab in the statement<br>
<br>
M1=sparse(M1_ij,M1_v,[n1,n2])<br>
<br>
is negligible compared to the time spent to build f M1_v...<br>
<br>
I have also noticed that if you need to define such a matrix
with more
<br>
that one column, the time elapsed is not linear with respect
to the <br>
number of columns: typically 4 times slower for 2 columns. In
fact the
<br>
statement<br>
<br>
v=[1 1<br>
...<br>
1000 1000]<br>
<br>
is even two times slower than<br>
<br>
v1=[1<br>
...<br>
1000];<br>
v2=[1<br>
....<br>
1000];<br>
v=[v1 v2];<br>
<br>
So my question to users who have the experience of dynamic
link of user
<br>
code : do you think that using dynamic link of compiled
generated C code
<br>
could improve the timings ?<br>
<br>
In advance, thanks for your help !<br>
<br>
S.<br>
<br>
<br>
[attachment "test.sce" deleted by Adrian Weeks/CWL/EU/ITG]
_______________________________________________<br>
users mailing list<br>
<a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a><br>
</font></tt><a moz-do-not-send="true"
href="http://lists.scilab.org/mailman/listinfo/users"><tt><font
size="2">http://lists.scilab.org/mailman/listinfo/users</font></tt></a><tt><font
size="2"><br>
</font></tt>
<br>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
<a class="moz-txt-link-freetext" href="http://lists.scilab.org/mailman/listinfo/users">http://lists.scilab.org/mailman/listinfo/users</a>
</pre>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
Département de Génie Informatique
EA 4297 Transformations Intégrées de la Matière Renouvelable
Université de Technologie de Compiègne - CS 60319
60203 Compiègne cedex</pre>
</body>
</html>