Message boards : BOINC client : How to make boinc client "don't download new task from server when all cores are running"?
Message board moderation
Author | Message |
---|---|
Send message Joined: 28 Mar 16 Posts: 9 |
Hello everyone, Is there a way to make client download the new task only when the computer has at least one idle core? (which means if client serves 100% processors for boinc project, once the jobs are downloaded, it will run immediately, there will no jobs hang in status "ready to start") If I need to edit server-side source code, I guess it should make some changes in scheduler, but I don't know how to get the "running jobs number" on client side thanks for any help :) |
Send message Joined: 5 Oct 06 Posts: 5131 |
Have you tried simply setting your cache ("Store at least ... days of work") at zero? I believe the client is hard-coded to initiate the next work request 3 minutes before idleness is expected, to allow enough time for a new task to be downloaded and ready to start - it shouldn't take too long to find that in the core work_fetch loop and hack it down to zero, if 3 minutes is too long. Edit - alternative suggestions: 1) Set project Resource Share to zero - backup project, only fetch work when host is idle. 2) Client configuration <fetch_minimal_work>0|1</fetch_minimal_work> |
Send message Joined: 20 Nov 12 Posts: 801 |
2) Client configuration One catch with that: it does exactly what it says. It fetches work once and never again. |
Send message Joined: 28 Mar 16 Posts: 9 |
@Richard, @Juha, thanks for your reply, 'only fetch work when host is idle' and 'fetch_minimal_work configuration' can solve what I mentioned in title, but there's more detail in my requirements , I'm sorry my question is not clear: In my experiment, I want to make clients act like real-time distributing computing worker, For example, If a 12 cores client is running 100% (12 jobs), and then when a job is completed, it should return the result and fetch a new job from server (not from locale, the jobs are 'already download and ready to start' ), so the client will keep run 100% CPU until fetch no more jobs from server. 'fetch_minimal_work will' only fetch one job from server and never again, so it can't be applied in my experiment, In client side, I wrote a script to keep updating the project (shorter than 3 minutes), which means keep fetching new jobs from server. In server side, I purged the jobs every x seconds if they not been pulled by client. My purpose is to 'make sure all the jobs are running as soon as they've been pulled from server', so those "ready to start' jobs are unnecessary. I would like to see the following conditions (a 12 cores client): 1. There will no more than 12 jobs in client side 2. Client will keep fetching until 12 jobs are all in progress (running, uploading ....) 3. If 2 jobs are completed (2 cores are idle), in next time update client will fetch exactly 2 two jobs from server 4. There will be no jobs in status "ready to start" Is that possible to do in current the BOINC architecture? |
Send message Joined: 6 Jul 10 Posts: 585 |
hmmm, think all info is already there... set your project/projects ALL to zero resource share on the project location profiles and the Minimum/Additional buffers to zero. At that point only tasks are fetched when a core is actually idle. The 2-3 minute prior to finish of any task fetch is designed in to not have idle resources, but if you insist, your mode will have that happen. Keep in mind that projects have varying forced backoffs, so that the button hammerers, manual or by script, wont be able to DDOS the project schedulers. Coelum Non Animum Mutant, Qui Trans Mare Currunt |
Send message Joined: 28 Mar 16 Posts: 9 |
@SekeRob2, thanks for the replying, In my experiment there is only one project, and I use client with 2 cores (the machine has 24 cores in physical but I set <ncpus> to 2 in cc_config.xml), I have set project resource share to zero: http://imgur.com/vaPgIDS and set Minimum/Additional buffers to zero: http://imgur.com/J06hOCt But when I start running the client, It still download task more than two: http://imgur.com/tIfOUM8 Did I do something wrong about the setting? thanks, |
Send message Joined: 6 Jul 10 Posts: 585 |
What's on the Web profiles may not transfer to the client if there are any local prefs in override. The event log would tell. Clear them via the Computing preferences in BOINC. Coelum Non Animum Mutant, Qui Trans Mare Currunt |
Send message Joined: 28 Mar 16 Posts: 9 |
@SekeRob2, I found that I set the preferences on the wrong account... the setting you mentioned are just work for me! Thank you guys so much! |
Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software Foundation.