"Multithreading" in prefs

Message boards : Number crunching : "Multithreading" in prefs
Message board moderation

To post messages, you must log in.

AuthorMessage
dannyridel

Send message
Joined: 20 Oct 19
Posts: 6
Credit: 0
RAC: 0
Message 266 - Posted: 10 Nov 2019, 10:00:51 UTC

I run many projects, but this is my first one that requires VirtualBox. I don't quite know the nature of this kind of project, and I've set the multithread settings to a max of 4 CPUS. Somehow I keep on getting work that runs on 1 CPU core only. I've read some posts that hinted that the tasks uses 1/3 of the cores available(???). I've also been wondering if the VM runs separately from the other BOINC projects, like you could have a PrimeGrid PSP task running on 4 CPUs AND a Quchempedia task running while BOINC is set to run on a max of 4 cores. Also if we could multithread will we get faster runtimes? I get the idea from "server status" that the MEAN (not median) runtime is ~17hrs. What's the median and what's the possibility of it running longer or shorter? I am quite a noob at DC and have many questions.
ID: 266 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
swiftmallard
Avatar

Send message
Joined: 13 Oct 19
Posts: 87
Credit: 6,026,455
RAC: 0
Message 273 - Posted: 11 Nov 2019, 16:33:25 UTC - in response to Message 266.  
Last modified: 11 Nov 2019, 16:34:47 UTC

Where in QuChemPedIA do you see the option of multi-threading?
ID: 273 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
dannyridel

Send message
Joined: 20 Oct 19
Posts: 6
Credit: 0
RAC: 0
Message 282 - Posted: 12 Nov 2019, 11:08:46 UTC - in response to Message 273.  

i can't post screenshots, and I won't, but it says "Max CPUs per task" in prefs.
ID: 282 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
swiftmallard
Avatar

Send message
Joined: 13 Oct 19
Posts: 87
Credit: 6,026,455
RAC: 0
Message 283 - Posted: 12 Nov 2019, 14:02:22 UTC

Those are your project preferences, with a 2 selected your system would crunch two WUs, one on each core.

It is not multi-threading, that is where all available cores (as set in your preferences) crunch one WU until it is complete. The app the project sends has control over that process, not you.

I see you aborted two work units, that was probably unnecessary. Was it because they showed such a long time until completion? If so, do not worry about estimated times, and are notoriously inaccurate in this project.
You may have seen in one of my previous posts that I run only one third of my available cores, two of six. Considering my cores and RAM available, that is the way I avoid the "unmanageable" notifications written about in another thread. YMMV, perhaps you can run more, or possibly less. You will need to experiment until you find the most stable configuration for your machine.

Disregard the 17 hours runtime notice, the only important average runtime is yours, that you will find for yourself. I see runtimes estimated anywhere from 22 days down to 2 hours on my machine. They almost always complete in several hours. Take a look at my computer and see for yourself. As far as running VirtualBox, install in on your computer and forget about it, the project app makes all necessary settings.
ID: 283 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
bcavnaugh
Avatar

Send message
Joined: 16 Nov 19
Posts: 4
Credit: 340,208
RAC: 0
Message 290 - Posted: 16 Nov 2019, 17:28:00 UTC
Last modified: 16 Nov 2019, 17:33:08 UTC

I did Pause the BOINC Client and then Exit the Client.
I started up vBox and change the CPU from 1 to 4 and it is running but still shows 6+ Days to complete.
ID: 290 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
bcavnaugh
Avatar

Send message
Joined: 16 Nov 19
Posts: 4
Credit: 340,208
RAC: 0
Message 291 - Posted: 16 Nov 2019, 20:42:07 UTC
Last modified: 16 Nov 2019, 21:26:57 UTC

This seems to off worked less than 3 Hours to complete.
I also changed the Memory to 2048
Run time 2 hours 58 min 13 sec
CPU time 2 hours 56 min 43 sec
https://quchempedia.univ-angers.fr/athome/result.php?resultid=81121


But we need to be able to Set Setting CPU Count for VM. (1) to Setting CPU Count for VM. (#)
# the number of Cores or Threads we want to run

Going to Test the Defaults to compare runtimes on an AVX-512 Rig
Some Tasks did fail (Validate error) on startup but that seems to be the norm for vBox Tasks
ID: 291 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
dannyridel

Send message
Joined: 20 Oct 19
Posts: 6
Credit: 0
RAC: 0
Message 292 - Posted: 17 Nov 2019, 3:21:10 UTC - in response to Message 283.  

Thank you!
ID: 292 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
xii5ku

Send message
Joined: 21 Jun 20
Posts: 24
Credit: 68,559,000
RAC: 0
Message 900 - Posted: 21 Jun 2020, 17:07:02 UTC - in response to Message 266.  

Sorry for reviving an old thread. But the issue at hand is still applicable, so here we go:

dannyridel wrote:
I've set the multithread settings to a max of 4 CPUS. Somehow I keep on getting work that runs on 1 CPU core only.
Check the apps.php page, i.e. "Computing -> Applications" at the top of the web page. At this time, this hints that
    the "NWChem" application is single-thread,
    the "NWChem long" application is single-threaded on Windows,
    the "NWChem long" application is currently single-threaded on Linux unless "Run test applications?" is switched to Yes at the project preferences, until the 2t/ 4t/ 8t versions are promoted out of beta status.

At least that's how I understand it.

ID: 900 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
xii5ku

Send message
Joined: 21 Jun 20
Posts: 24
Credit: 68,559,000
RAC: 0
Message 907 - Posted: 22 Jun 2020, 20:52:23 UTC

* * * Wish list * * *

1. Allow to fix the threads per task to one value only, instead of a range.

Currently, Linux users can choose between exactly 1 thread/task, or randomly 1...2 threads/task, or randomly 1/2/4 threads per task, or randomly 1/2/4/8 threads per task. Frankly, the random options are completely bogus.

Whenever I run projects with multithreaded applications on my hosts, I always configure the client to run tasks with one uniform thread count per task. Not doing this will soon confuse the work queue management, and leave me with an under-utilized host, which I detest to no end.


2. Allow other thread counts than just 1, 2, 4, or 8.

I have yet to run proper tests, but it seems to me that while there is a throughput loss when going from 1 to >1 thread per task (as expected, due to inter-process synchronization overhead), there is very good scaling from a few to several more threads per task (as expected from such a long-running workload).

And what's more, it seems the thread count does not have to be a power of two. I started a 14-threaded tasks successfully, but it has yet to complete, and to validate of course.

Thread counts which are not a power of two will be good to have on 6-, 12, 14-, ... -core hosts.


3. Allow more than 8 threads per task.

I ran several 16-threaded tasks by now. The few which validated by now appear to have reasonable scaling compared with 4- and 8-threaded tasks.

I tried to start one 32-threaded task but it exited after a few seconds. I.e. there must have been an error which was not reported upwards to the boinc wrapper. I need to do some offline tests to check this out.


4. As a band-aid until some of the above can be implemented: Allow the anonymous platform.

I set up clients with an app_info.xml and the necessary project files in order to implement the above items locally. But when these clients requested work, the request failed with "HTTP internal server error".

For now, I am working around the lack of app_info.xml support by manual editing of the nwchem_t1_worker_0.19.sh file. The modification does not persist over a client restart though, of course.


PS,
while it is for certain that the single-threaded jobs will give best throughput, I am personally not keen on tasks which might require several days to complete.
ID: 907 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
xii5ku

Send message
Joined: 21 Jun 20
Posts: 24
Credit: 68,559,000
RAC: 0
Message 911 - Posted: 27 Jun 2020, 7:34:19 UTC - in response to Message 907.  
Last modified: 27 Jun 2020, 7:34:28 UTC

xii5ku wrote:
it seems the thread count does not have to be a power of two. I started a 14-threaded tasks successfully, but it has yet to complete, and to validate of course.
This 14-threaded task validated by now. I shall try more of this, perhaps next week.
ID: 911 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
ProDigit

Send message
Joined: 16 Nov 19
Posts: 44
Credit: 21,290,949
RAC: 0
Message 914 - Posted: 27 Jun 2020, 8:30:32 UTC

Why would you prefer a x-thread WU, over running x- amount of single threaded WUs?
In Linux it doesn't make sense, but I get what you're saying if you're running virualbox, and each WU loads in it's own virtual environment.
ID: 914 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
xii5ku

Send message
Joined: 21 Jun 20
Posts: 24
Credit: 68,559,000
RAC: 0
Message 925 - Posted: 11 Jul 2020, 12:39:14 UTC - in response to Message 914.  

Sometimes it is convenient to be able to finish the work within less than half a day after download, rather than in two or three days.
ID: 925 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Aurum
Avatar

Send message
Joined: 14 Dec 19
Posts: 68
Credit: 45,744,261
RAC: 0
Message 953 - Posted: 21 Jul 2020, 15:01:11 UTC - in response to Message 907.  

1. Allow to fix the threads per task to one value only, instead of a range.

Currently, Linux users can choose between exactly 1 thread/task, or randomly 1...2 threads/task, or randomly 1/2/4 threads per task, or randomly 1/2/4/8 threads per task. Frankly, the random options are completely bogus.

Whenever I run projects with multithreaded applications on my hosts, I always configure the client to run tasks with one uniform thread count per task. Not doing this will soon confuse the work queue management, and leave me with an under-utilized host, which I detest to no end.
Are you saying this does not work???
<app_config>
<app>
    <name>nwchem_long</name>
    <!-- Xeon E5-2699 v4  22c44t  L3 Cache = 55 MB  -->
</app>
<app_version>
    <app_name>nwchem_long</app_name>
    <plan_class>t1</plan_class>
    <avg_ncpus>18</avg_ncpus>
    <cmdline>--nthreads 18</cmdline>
</app_version>
</app_config>

ID: 953 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Aurum
Avatar

Send message
Joined: 14 Dec 19
Posts: 68
Credit: 45,744,261
RAC: 0
Message 954 - Posted: 21 Jul 2020, 16:18:15 UTC

Nope, it does not work. I can't find the <plan_class> definition in the client_state file. It works fine for LHC ATLAS.
ID: 954 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote

Message boards : Number crunching : "Multithreading" in prefs

©2024 Benoit DA MOTA - LERIA, University of Angers, France