<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
<style type="text/css">
/* Quote Levels Colors */
blockquote.cite { color: navy !important; background-color: RGB(245,245,245) !important;
}
blockquote.cite blockquote.cite { color: maroon !important; background-color: RGB(235,235,235) !important;
}
blockquote.cite blockquote.cite blockquote.cite { color: green !important; background-color: RGB(225,225,225) !important;
}
blockquote.cite blockquote.cite blockquote.cite blockquote.cite { color: purple !important; background-color: RGB(215,215,215) !important;
}
blockquote.cite blockquote.cite blockquote.cite blockquote.cite blockquote.cite { color: teal !important; background-color: RGB(205,205,205) !important;
}
</style>
</head>
<body>
Hi François, <br>
<br>
Perfect - yes that would work great for me. Is there an update on
the alpha available that has this change?<br>
<br>
Strings: nice. I am impressed with the API interface.<br>
<br>
Best wishes, <br>
<br>
Jasper.<br>
<br>
<div class="moz-cite-prefix">On 9/8/2015 19:49, François Granade
wrote:<br>
</div>
<blockquote class=" cite"
id="mid_5B6E037D_7B43_4684_BEB1_32A3D18A66C3_scilab_enterprises_com"
cite="mid:5B6E037D-7B43-4684-BEB1-32A3D18A66C3@scilab-enterprises.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
hi Jasper,
<div><br>
</div>
<div>Yes, we made a decision - and in fact we implemented it
already: and we changed it to be simply always use the same
thread. That should work for you, right ?</div>
<div><br>
</div>
<div>Regarding your other question (api scilab): I believe that
there is string support for cpp (we implemented it), however
this is still in development, and may still change before the
release... </div>
<div><br>
</div>
<div>François Granade</div>
<div><br>
</div>
<div><br>
<div>
<div>
<div>On Sep 3, 2015, at 4:51 PM, jasper van baten <<a
moz-do-not-send="true"
href="mailto:jasper@amsterchem.com"><a class="moz-txt-link-abbreviated" href="mailto:jasper@amsterchem.com">jasper@amsterchem.com</a></a>>
wrote:</div>
<br class="Apple-interchange-newline">
<blockquote class=" cite" id="Cite_6244667" type="cite">
<div style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant: normal; font-weight:
normal; letter-spacing: normal; line-height: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-stroke-width: 0px;">Hi
François,<br>
<br>
Is there a decision on the threading model yet?<br>
<br>
Many thanks, best wishes,<span
class="Apple-converted-space"> </span><br>
<br>
Jasper.<br>
<br>
<div class="moz-cite-prefix">On 8/5/2015 10:44, jasper
van baten wrote:<br>
</div>
<blockquote class=" cite"
id="mid_55C1CD01_8070304_amsterchem_com"
cite="mid:55C1CD01.8070304@amsterchem.com" type="cite"
style="color: navy !important; background-color:
rgb(245, 245, 245) !important;">Hi François,<br>
<br>
Many thanks for your reply. As soon as you know more,
I would be very pleased to test again in a new alpha.
I would like to have my software back up-and-running
before the actual release of Scilab 6. Before doing so
I will have to decide how to handle the threading
issue.<br>
<br>
If the solution will be that all is single threaded
but in different threads, I suppose my best
work-around would still be to synchronize access to
the underlying objects over a private thread. I hope
you will decide to keep the core thread alive and
recycle it between calls, so that all calls are made
on the same thread.<br>
<br>
If on the other hand your solution will be full
multi-threaded execution, I would welcome that too.
Also in this case I hope you will create a fixed
number of threads and recycle them, for the same
reason. In this case I can simply create a
corresponding number of COM objects under the hood.<br>
<br>
I am not sure why events from outside the thread would
have to make that you stop the thread and start
another one (unless you forcefully terminate the
thread, but I suppose you do not as this will surely
lead to memory leaks and other trouble). You can
simply set up your calculation thread to do something
like<br>
<br>
<tt>void core_threadproc() {</tt><br>
<br>
<tt> for (;;) {</tt><tt><br>
</tt><tt> <span class="Apple-converted-space"> </span>//wait
until next command</tt><tt><br>
</tt><tt> <span class="Apple-converted-space"> </span>synchronizationObject.wait();</tt><tt><br>
</tt><tt> <span class="Apple-converted-space"> </span>//pick
up next (set of) command(s) and execute</tt><tt><br>
</tt><tt> <span class="Apple-converted-space"> </span>if
(nextCommand==CommandTerminate()) break;</tt><tt><br>
<span class="Apple-converted-space"> </span>...<br>
</tt><tt> <span class="Apple-converted-space"> </span></tt><tt><br>
</tt><tt> <span class="Apple-converted-space"> </span>}</tt><tt><br>
</tt><tt><br>
</tt><tt>}<br>
<br>
</tt>For interrupting calculations you could poll
between individual commands and during length
commands.<span class="Apple-converted-space"> </span><br>
<br>
On another note: removal of the intersci exe forced me
to switch to the api-scilab (short of keeping previous
builds of scilab around). I am pleased with this
interface, it is a lot nicer than intersci. The C++
interface is nicer than the C interface, I think, but
does not seem to have support for strings and some
other data types (unless I missed something). So I am
now mixing my approach: "csci" interfaces for all
routines that take string matrices as in- our output,
and "cppsci" interfaces for all routines that only
deal with numeric matrices. Support for string (and
other) data types from the cppsci interface would be
welcome in the future.<br>
<br>
Best wishes,<span class="Apple-converted-space"> </span><br>
<br>
Jasper<br>
<br>
<br>
<br>
<div class="moz-cite-prefix">On 8/5/2015 10:21,
François Granade wrote:<br>
</div>
<blockquote class=" cite"
id="mid_4A7E6280_FEB2_4795_99F9_3ACC8DC4B6A6_scilab_enterprises_com"
cite="mid:4A7E6280-FEB2-4795-99F9-3ACC8DC4B6A6@scilab-enterprises.com"
type="cite" style="color: maroon !important;
background-color: rgb(235, 235, 235) !important;">Hi
Jasper,
<div><span style="background-color: rgb(255, 255,
255);"><br>
</span></div>
<div>Looks like you have found an interesting
question here...</div>
<div><br>
</div>
<div>First - there are no multiple concurrent
threads in the core. So we are safe (and so is the
API, without being thread-safe).</div>
<div><br>
</div>
<div>However, what you saw is right: each command
executes in a new thread. We designed it on
purpose, with one of the reason being that this
thread can be what we call the "storeCommand"
which manages events from outside the main thread
(UI, interruption). Another idea was that - later
- to allow multithreaded execution (under some
serious constraints).</div>
<div><br>
</div>
<div>Now, your point about COM loading, and
thread-local storage, is very valid, and may very
well mean that we should change this. </div>
<div><br>
</div>
<div>We will study if/how we could modify that...
we'll keep you posted.</div>
<div><br>
</div>
<div>Thanks *a lot* for reporting this; it's exactly
what we released the alpha for, and even though we
were hoping we would not have such questions, it's
better to have them now than later...</div>
<div><br>
</div>
<div>for the Scilab team,</div>
<div>François Granade</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div>On Aug 4, 2015, at 9:21 AM, jasper van baten
<<a moz-do-not-send="true"
class="moz-txt-link-abbreviated"
href="mailto:jasper@amsterchem.com">jasper@amsterchem.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<blockquote class=" cite" id="Cite_3818095"
type="cite" style="color: maroon !important;
background-color: rgb(235, 235, 235)
!important;">
<div style="font-family: Helvetica; font-size:
12px; font-style: normal; font-variant:
normal; font-weight: normal; letter-spacing:
normal; line-height: normal; orphans: auto;
text-align: start; text-indent: 0px;
text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px;
-webkit-text-stroke-width: 0px;">Does anybody
know what threading model is used in Scilab 6
alpha? I am referring to the default mode of
operation, and not while executing
parallel_for, or MPI as described here (<a
moz-do-not-send="true"
class="moz-txt-link-freetext"
href="http://wiki.scilab.org/Documentation/ParallelComputingInScilab"><a class="moz-txt-link-freetext" href="http://wiki.scilab.org/Documentation/ParallelComputingInScilab">http://wiki.scilab.org/Documentation/ParallelComputingInScilab</a></a>).<br>
<br>
If there are multiple core threads that
execute concurrently, then all api-scilab code
needs to be written in a thread-safe
re-entrant safe manner. I doubt this is the
case.<span class="Apple-converted-space"> </span><br>
<br>
If there is one core thread alive at any
point, it would make sense for this to remain
the same thread, which does not appear to be
the case. If not the same thread, any
application that depends on apartment threaded
COM objects or thread local storage will no
longer function as it did in Scilab 5. The
solution may be to synchronize such
applications over a private thread, but that
surely will come at a performance cost.<br>
<br>
Having some idea about the threading model
that is intended and used would be helpful.<br>
<br>
Best wishes,<span
class="Apple-converted-space"> </span><br>
<br>
Jasper.<br>
<br>
<div class="moz-cite-prefix">On 7/31/2015
18:35, jasper van baten wrote:<br>
</div>
<blockquote class=" cite"
id="mid_55BBA3E6_4080903_amsterchem_com"
cite="mid:55BBA3E6.4080903@amsterchem.com"
type="cite" style="color: navy !important;
background-color: rgb(245, 245, 245)
!important;">All,<br>
<br>
What's the story with threading in Scilab 6?
Whereas previous versions appeared to be
single threaded from an external DLL point
of view, I see that the DLLmain function
gets called by a one thread, whereas
interface routines get called from another
thread. Worse, looks like each interface
routine call is made from a new thread. What
is the threading model?? Is there a limited
number of threads, or are threads created on
the fly?<br>
<br>
Thanks, best wishes,<span
class="Apple-converted-space"> </span><br>
<br>
Jasper<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
users mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
<a moz-do-not-send="true" 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>
users mailing list<br>
<a moz-do-not-send="true"
href="mailto:users@lists.scilab.org">users@lists.scilab.org</a><br>
<a moz-do-not-send="true"
href="http://lists.scilab.org/mailman/listinfo/users">http://lists.scilab.org/mailman/listinfo/users</a></div>
</blockquote>
</div>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
users mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
<a moz-do-not-send="true" 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>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
users mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
<a moz-do-not-send="true" 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>
users mailing list<br>
<a moz-do-not-send="true"
href="mailto:users@lists.scilab.org">users@lists.scilab.org</a><br>
<a moz-do-not-send="true"
href="http://lists.scilab.org/mailman/listinfo/users">http://lists.scilab.org/mailman/listinfo/users</a></div>
</blockquote>
</div>
<br>
</div>
</div>
<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>
</body>
</html>