To tell BOINC that the app is multi-thread, use the plan class
mechanism, as Carl Christensen indicated.
NOTE: the default for plan class "mt" is that your app uses
all available cores up to 64.
If your app does something different,
then you need to modify sched/sched_customize.cpp accordingly
and recompile your scheduler.

The wrapper with boinc_init_parallel() will run,
but it won't suspend/resume threads correctly on Windows.

-- David

On 15-Mar-2011 5:59 AM, Arnaud Schoofs wrote:

> I think you're right when you say that "the wrapper should work as-is with
> multi-thread worker programs", but the problem is that in that case, Boinc
> doesn't know that the program is multi-thead I guess ... and so multiple
> copies of the application will be running simultaneously.
>
> My questions are: - How can I tell to Boinc that the app is multi-thread
> (--->  one WU at a time) ? Maybe using __mt application plan class is
> sufficient ? - What are the side-effects to not use boinc_init_parallel() in
> a multi-thread application ? I guess there are some, otherwise the function
> seems useless ...
>
> Meanwhile I ran some tests on my project and the wrapper and applications
> seem running well with boinc_init_parallel() in wrapper.cpp. I tested that on
> OS X, Linux and Windows.
>
> Best regards,
>
> Arnaud Schoofs Evo@home project administrator
> http://boinc.run.montefiore.ulg.ac.be/evo/
>
> Le 14 mars 2011 à 18:30, David Anderson a écrit :
>
>> Arnaud: Actually, on reflection, it's not correct for the wrapper to call
>> boinc_init_parallel(); that function assumes that the calling process is
>> going to create new threads. The wrapper should work as-is with
>> multi-thread worker programs.
>>
>> -- David
>>
>> On 11-Mar-2011 4:14 PM, Arnaud Schoofs wrote:
>>> Hello,
>>>
>>> I have a question/suggestion concerning the wrapper, legacy applications
>>> and multi-threads apps. Our legacy application is multi-threads and I'd
>>> like to run it in multi-threads mode using the boinc wrapper. I think I'm
>>> gonna try to add a boinc_init_parallel() just before the
>>> boinc_init_optios(&options) in wrapper.cpp (line 692 in trunk) Do you
>>> think it's all I have to do ? I have some trouble to debug my application
>>> with a BOINC client but no project (
>>> http://boinc.berkeley.edu/trac/wiki/AppDebug), so it's not easy for me
>>> to test the solution proposed. If this is working, it could be nice to
>>> add an option in job.xml file to enable/disable the init_boinc_parallel
>>> don't you think ?
>>>
>>> Thanks for your help, Have a nice week end
>>>
>>> Arnaud Schoofs Evo@home project administrator
>>> http://boinc.run.montefiore.ulg.ac.be/evo/
>>> _______________________________________________ boinc_dev mailing list
>>> [email protected]
>>> http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe,
>>> visit the above URL and (near bottom of page) enter your email address.
>
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to