Task start optimisation suggestion

Message boards : Number crunching : Task start optimisation suggestion

To post messages, you must log in.

AuthorMessage
PorkyPies

Send message
Joined: 6 Apr 20
Posts: 45
Credit: 1,650,779
RAC: 0
Message 94224 - Posted: 12 Apr 2020, 10:15:46 UTC
Last modified: 12 Apr 2020, 10:16:29 UTC

I had a quick look at some slot directories after getting the 4.15 Rosetta app on a Raspberry Pi today.

It looks to me, and I could be wrong, the app unzips the database and other files into the slot directory when it first starts. Around 1.5 to 1.8GB of files, for each and every task start. This is going to be a killer on the Raspberry Pi’s and other SD card based systems. They don’t support trim and have minimal wear levelling, not to mention they are much smaller capacities (8 or 16GB cards are common) so have much less spare blocks than say a 256GB SSD. It’s also time consuming doing this for each task start.

If I recall from a couple of years ago GPUgrid used to do the same thing, except they were copying CUDA libs which were also huge. I believe BOINC has the ability to have static files in the project directory that can be sym-linked from the slot directory which is a heck of a lot more efficient than copying them every time. This of course is only suitable if the files are not being updated by the task. Maybe the app developers can look into this.
MarksRpiCluster
ID: 94224 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Tom M

Send message
Joined: 20 Jun 17
Posts: 87
Credit: 15,121,499
RAC: 45,406
Message 94236 - Posted: 12 Apr 2020, 13:07:06 UTC - in response to Message 94224.  

I had a quick look at some slot directories after getting the 4.15 Rosetta app on a Raspberry Pi today.

It looks to me, and I could be wrong, the app unzips the database and other files into the slot directory when it first starts. Around 1.5 to 1.8GB of files, for each and every task start. This is going to be a killer on the Raspberry Pi’s and other SD card based systems. They don’t support trim and have minimal wear levelling, not to mention they are much smaller capacities (8 or 16GB cards are common) so have much less spare blocks than say a 256GB SSD. It’s also time consuming doing this for each task start.

If I recall from a couple of years ago GPUgrid used to do the same thing, except they were copying CUDA libs which were also huge. I believe BOINC has the ability to have static files in the project directory that can be sym-linked from the slot directory which is a heck of a lot more efficient than copying them every time. This of course is only suitable if the files are not being updated by the task. Maybe the app developers can look into this.


Hi,
I would rename this thread to something about Raspberry Pi.
You have two good points and this kind of i/o optimization may also be good for cellphone versions too.

Tom
Help, my tagline is missing..... Help, my tagline is......... Help, m........ Hel.....
ID: 94236 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
PorkyPies

Send message
Joined: 6 Apr 20
Posts: 45
Credit: 1,650,779
RAC: 0
Message 94307 - Posted: 13 Apr 2020, 1:29:03 UTC - in response to Message 94236.  

I would rename this thread to something about Raspberry Pi.
You have two good points and this kind of i/o optimization may also be good for cellphone versions too.

Tom

It’s not specific to the Pi’s but obviously they would benefit greatly from it as SD cards are a slow storage device. Hopefully one of the mods will pass the idea on to the developers.

I’m still not sure why the project released the Rosetta 4.15 app for aarch64. Maybe the Rosetta for Portable Devices wasn’t providing enough scientific data. I’d probably remove it, but I don’t know all the facts/reasoning behind it.
MarksRpiCluster
ID: 94307 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile dcdc

Send message
Joined: 3 Nov 05
Posts: 1831
Credit: 119,606,478
RAC: 10,940
Message 94323 - Posted: 13 Apr 2020, 9:18:34 UTC

Would this also help reduce RAM requirements? If multiple Rosetta threads each need the same file loading into RAM, does that memory get loaded once or multiple times separately?
ID: 94323 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
ProDigit

Send message
Joined: 6 Dec 18
Posts: 27
Credit: 2,718,346
RAC: 0
Message 94411 - Posted: 13 Apr 2020, 23:01:01 UTC

A lot of the stuff remains in RAM, and doesn't fully get written until a checkpoint has reached.
I would recommend buying a cheap $18 SSD (64GB) that would still give you enough writes to do Boinc for the next 5 or 10 years 24/7 before wear leveling becomes an issue.
ID: 94411 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Mad_Max

Send message
Joined: 31 Dec 09
Posts: 209
Credit: 25,963,035
RAC: 14,027
Message 94417 - Posted: 14 Apr 2020, 1:32:52 UTC
Last modified: 14 Apr 2020, 1:45:28 UTC

Yes, it is a very good idea.
And BOINC have right tools to do so.
And it very useful not only for SD cards devices but for regular computer with BOINC installed on HDD too. Starting a lot of R@H WUs (on many cores/threads CPUs) from HDD is a very slow process due to multiple databases unpacking and often cause errors and WU failures.

Also it can save a lot of disk space on SSDs: each running R@H WUs consume about 1 GB of disk space 95-99% of which used by copies of a same database (~960 MB, 5300 files in latest revision) common for all WUs.

But it was proposed many times for few years already (I also wrote about this several times) and nothing done on the issue.
ID: 94417 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Mad_Max

Send message
Joined: 31 Dec 09
Posts: 209
Credit: 25,963,035
RAC: 14,027
Message 97663 - Posted: 27 Jun 2020, 0:11:14 UTC
Last modified: 27 Jun 2020, 0:12:00 UTC

And finally this optimization was implemented! In Rosetta v. 4.20 and later: https://boinc.bakerlab.org/rosetta/forum_thread.php?id=12554&postid=95678#95678

And it works fine and cut down disk space usage and disk I/O load by at least an order of magnitude! (> 10 times)
ID: 97663 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote

Message boards : Number crunching : Task start optimisation suggestion



©2024 University of Washington
https://www.bakerlab.org