Index | Recent Threads | Unanswered Threads | Who's Active | Guidelines | Search |
![]() |
World Community Grid Forums
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
No member browsing this thread |
Thread Status: Active Total posts in this thread: 11
|
![]() |
Author |
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
Ive got a Core i5 machine that I prefer to keep as clean as possible at my home, so normally I don't run WCG on it. However I do run WCG on it through Ubuntu whenever I'm not using it for long periods of time.
I noticed that when I use the "renice x PID" command to increase the priority of the WCG tasks I get ~16% improvement in output. Is there any way that I can set the priorities to automatically so that while I'm away (usually for about a week at a time) I can still receive this benefit? I'm not a total Linux know-all sadly :'( |
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
Hello Aedazan,
at first, let me congratulate you for this post. If this command really helps to speed up BOINC so much, this is - in my opinion - the most useful post of the year!! I am very ready to help you and answer your question. In Linux, there is a boot sequence just as it was in Windows. At http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=4 it says: "4.a. Runlevels Booting your System (.....) This process then makes sure that all filesystems (defined in /etc/fstab) are mounted and ready to be used. Then it executes several scripts located in /etc/init.d, which will start the services you need in order to have a successfully booted system. " So, as far as I understand, to change BOINCS priority at the start of your computer, you shoud add your "renice x PID" command to (one of) those init scripts, to make your machine execute the rencice dommand during the booting process. I hope that this helps, but I am not sure. Can you tell me, how you have found out that there is the necessity to carry out the renice command automatically? Why is it impossible just to boot the machine nomally, then execute the renice command by hand afterwards? If you do this, the priority of BOINC should be changed and then stay at high priority during the time of your absence. Are you really sure, that if the renice command has been executed, that then afterwards BOINCs priority falls back to the level it had before? I do not see any reason why this should happen. Please give feeback, whether my answer was useful. Thank you. Martin |
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
Hi,
Not aware in Linux how a process or child process could be auto-reniced from default 19 for BOINC (only use spare cycles, but use 100% of them), to normal. The Process ID changes with each new (re)start. In Windows, the one tool I know to work reliably through W7 is "Process Lasso" which has many many tuning features, but know what you do or you turn the computer into a "whilst in use" slug. 16% More output suggest BTW that there are other processes running taking that time, else BOINC would have used it. Use System Monitor or Top to see which permanent processes clock-up most time and then determine if that can be really missed without lobotomising the OS. One CPU time eater is FireFox when left expanded on screen. I unload it when done as it has been set to remember all open tabs on restart. There are more such as idle time indexing utils. Good Luck. PS, I understand that normally child processes inherit the nice level of the parent, but in BOINC the nice level is hardcoded in the science app. It has to be an auto-nice that has to run constantly as CEP2 has 16 jobs that each get a new PID assigned at start. |
||
|
Crystal Pellet
Veteran Cruncher Joined: May 21, 2008 Post Count: 1328 Status: Offline Project Badges: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
From a Linux newbee:
Create a file called something like: set_WCG_prio.sh Contents: #!/bin/sh while true; do renice 0 `pgrep wcg_` sleep 600 done and start this script from a terminal window with this command: sh set_WCG_prio.sh The zero is the nicelevel and sleep 600 is 10 minutes wait to set the process priority again in the case a new (sub)task has started. Then you're ready for your long absence. |
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
Hello,
Well, I am sure that Sekrob gave an important information, so obviously reincing the process in the startup sequence does not help, as the pocesses in linux do get new numbers and priorities with each restart. If the solution poposed by Crystal Pellet does not work or you do not like it, there stll is the following sollution: You install two different versions of Linux on your PC: 1.Normal Ubuntu (or whatsoever preferred distribution of linux) 2. The Linux version adapted especially for BOINC, called Dotsch UX. It can be found here: http://www.dotsch.de/Dotsch_UX Please read this thread: https://secure.worldcommunitygrid.org/forums/wcg/viewthread_thread,30744 You could configure your machine as dual boot: If you are absent, you boot with the Dotsch OS, if you work with your machine, you boot your "Normal" Linux distribution, Ubuntu or whatsoever. Good luck Martin |
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
I noticed that when I use the "renice x PID" command to increase the priority of the WCG tasks I get ~16% improvement in output. ( u'll be really surprised that u can get even more if u'll try to "attach" each wcg process to dedicated CPU core. for this u should use "taskset" command if u want I can publish the script which doing this trick for me. to run it automatically i'm usiing cron |
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
Hello CTAPbIi,
I am very interested in your script. Could you please post it here. I think that you will help us and Worldcommunitygrid very much. Thank you in advance for your help. I wish I could programme scripts. Thank you once again Martin |
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
Hello CTAPbIi, I am very interested in your script. Could you please post it here. I think that you will help us and Worldcommunitygrid very much. Thank you in advance for your help. I wish I could programme scripts. Thank you once again Martin here we go. make empty file (i.e. "affinity"), make it executable and copy-paste this: #!/bin/bash how it works (line 2). pgrep looking for process "primegrid" and using it's PID (process ID) attaching this process to core #0 and changing priority to -10 (pretty high, but that gives better perfomance though). Assigning dedicates CPU core for flush and firefox drastically increasing their stabilty (primegrid app is perfectly optimazed). Easy like that :-) Some time ago I ran GPUGRID which required single CPU core for each GPU process. I attached GPUGRID app on core #0, but rosetta ran 8 apps, so I put two apps on core #7. I'm not really sure if some1 need that, but just in case:
to be sure it works for you: ps -eF | grep minirosetta Now, the problem is that I'm really lazy and wanna make computer (but not me) start this script as ofter as every single minute. For that I used cron. make empty file (i.e. "test"), make it executable and copy-paste this: SHELL=/bin/bash and then: crontab -u user_name test value for renice is from -19 (high priority) to 19 (very low, on which BOINC apps running). While started by user renice can be increased up to "0" only, but I need smth more. So, I'm starting it as root. That's it. [Edit 1 times, last edit by Former Member at Feb 6, 2011 6:26:19 AM] |
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
Hello CTAPbIi,,
Thank you very much for your prompt answer. Unfortunately, for the moment I cannot do more than say thanks, because here at the place where I am now, I got only a one-core computer. My second machine which has two cores, is far far away from me. I will not go there in the next months, so feedback about success of your script on my machine is for now not possible. But to me, only the fact of having someone like you who really knows Linux is a good thing. Thank you once again for the script and all the best to you Martin |
||
|
Former Member
Cruncher Joined: May 22, 2018 Post Count: 0 Status: Offline |
NP :-) I think it might be useful for all WCG users
|
||
|
|
![]() |