Download and use the BoincRescheduler

Started by fred, July 08, 2010, 07:55:03 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

fred

BoincRescheduler is a program that allows BOINC tasks to move from one plan class to another. E.g. from CPU to GPU cuda and GPU cuda to CPU.

Make sure you use the right 32 or 64 bit version! It matters.....

Limitations for now:
1) It can only reschedule work from CPU to GPU and GPU to CPU.
2) Works with SETI enhanced and other BOINC projects.

When you want to actually test the end result: Press "Test" and if you don't get any errors:

1) Stop the BOINC client
2) Unplug any Internet connections.
3) Make a complete copy of the BOINC folder.
4) Press Run

Warning: Even as I do extensive testing on my own computers and get feedback from others. It may cause unexpected problems on your computers, so use it at you own risk. ;D
Warning: If you are running BOINC as a service. This is untested, so this may not work properly!

Warning, rescheduling may result in less credits, for you or your wing man.
Try NOT to use it, unless there is no other way.

BoincRescheduler V 2.7
Tested on Win 7, Vista and XP 32/64. A separate W2k version is included.


Version information

fred

#1
Instructions:

Make sure you use the right 64 or 32 bit version.

Tab->Seti:

Check: "Always move VLAR's to CPU". This is normally switched on and moves all VLAR's to the CPU regardless of any other setting.
Check: "Always move VHAR's to CPU". This is normally switched on and moves all VHAR's to the CPU regardless of any other setting.

Check: "Allow VHAR's and VLAR's." In case you get stuck with most/all VLAR's and VHAR's, checking this options will do the following.
1) Check if there is any work on the CPU, that can be move to the GPU. (reject VLAR's and VHAR's)
2) If there is not enough: Allow VHAR's to be moved to the GPU.
3) If there still isn't enough: Move the VLAR's to the GPU as needed.

"If GPU tasks are less than" 40 "fill up to" 60 "Tasks":  Moves tasks to the GPU when the current total is less than 40. Move enough tasks to end up with 60 tasks.
"If CPU tasks are less than" 20 "fill up to" 30 "Tasks":  Moves tasks to the CPU when the current total is less than 20. Move enough tasks to end up with 30 tasks.

BOINC does is very best, to get you an equal amount of CPU and GPU tasks. This program messes up the CPU and GPU speed predictions. So only use it, when it's absolutely necessary.

Button Test: Reads the client_file and checks the number of tasks that are ready to start or running.
Button Run: The same as test, but will additionally move over work form CPU <-> GPU or GPU <-> CPU.

Button Ok: Hides the program.


Tab->Log:

Displays all logging, the same logging will go to the logging file. C:\Users\user_name\AppData\Roaming\eFMer\BoincScheduler\log

Button Clear: Clears the logging on screen.
Button Ok: Hides the window.
Check "Debug mode": Displays extra information for testing. The config.xml file may be used, to get more detailed information.

Tab->Settings:

Check "Hide in taskbar at startup": When checked, the program will hide itself at startup.
Check "Start BoincRescheduler at login": When checked, the program will start after the user logs in.
Check "Automatic mode.": Starts a "Run" when needed every xx hour and xx minutes. First a "Test" is started, when there is any need of rescheduling a "Run" is started.
Check "Restart the BOINC client after rescheduling": When not checked, the program will NOT restart the BOINC client.
Button "Start BOINC client": Starts the BOINC client.

Tab->Expert:

BOINC data folder: Leave this blank, to use the default location. If you use an alternative location of BOINC. This is the location of the main folder, NOT the project folder.
Temp folder: Leave this blank, to use the default location: C:\Users\user_name\AppData\Roaming\eFMer\BoincScheduler.

Check "Do not include running tasks in the rescheduling": Normally checked. This will not include tasks, that are already running to be rescheduled.
Check "Limit rsc_fpos_bound": Normally unchecked. When checked, it will adjust the maximum runtime limit, to a way higher value, to avoid -177 errors.

Check "Use mutex to prevent the BOINC client from running": Normally checked. Removing the check, may resolve a restarting problem on some computers, but is less safe.
Check "Removing the check, will result in a quicker initial read, may be less safe": Normally checked. Removing the check, the reading of the WU's will be a lot faster, but may be less safe. Normally the WU is copied to a temp file and next the temp file is used to read the WU data. Remove the check and the rescheduler will not make the copy.

Check "Simulation mode, only create a new state file": Normally unchecked. When checked it creates a new client_state, without actually copying it, to override the original one.

Button "Read config": Reads the config.xml file to apply any changes.

Taskbar menu:

Open: Same as clicking on the icon, shows the program.
About: About the program.
Exit: This is the way to exit the program.

fred

#2
config.xml

This file is for changing settings and debugging.
This file must be placed together with the exe and has to be called config.xml.
If you don't use it, rename it to e.g. xconfig.xml.

<config>
   <seti>
      <vlar>0.13</vlar>   
      <vhar>1.127</vhar>
      <dcf_min>0.1</dcf_min>
      <dcf_max>0.2</dcf_max>
      <est_ratio_cpu_min>0.5</est_ratio_cpu_min>
      <est_ratio_cpu_max>1.5</est_ratio_cpu_max>
      <est_ratio_gpu_min>0.5</est_ratio_gpu_min>
      <est_ratio_gpu_max>1.5</est_ratio_gpu_max>
   </seti>
</config>

<vlar>   Override default VLAR value.
<vhar>   Override default VHAR value.
<dcf_min>   Minimum duration_correction_factor. If the read value in the state file, is less than this value, this value is used to replace the existing duration_correction_factor.
<dcf_max>   Maximum duration_correction_factor. If the read value in the state file, is more than this value, this value is used to replace the existing duration_correction_factor
You need to set both <dcf_min>and <dcf_max>values! A value of 0 may NOT be used.

<est_ratio_cpu_min> Minimum flops correction on the CPU.
<est_ratio_cpu_max> Maximum flops correction of the CPU.
You need to set both <est_ratio_cpu_min>and <est_ratio_cpu_max>values!

<est_ratio_gpu_min> Minimum flops correction on the GPU.
<est_ratio_gpu_max> Maximum flops correction of the GPU.
You need to set both <est_ratio_gpu_min>and <est_ratio_gpu_max>values!

Extra logging:

   <log>
      <reschedule_wu>1</reschedule_wu>   (As of V 2.0)
   </log>

<reschedule_wu> Logs the WU's that are rescheduled.

The following part of the file is for debugging only.

<config>
   <debug>
      <log_all_tasks>1</log_all_tasks>
      <rsc_fpops>1</rsc_fpops>
   </debug>
</config>

log_all_tasks: Logs all tasks that are moved from CPU <->GPU and GPU <-> CPU
rsc_fpops: Logs all tasks with rsc_fpops_est calculation information and the ratio between the new (calculated) and the original (state) values.

The following part of the file is for advanced testing only.

The following forces a version and/or planclass. It will be used in simulation mode only.
It is only used in moving work.
The resulting client_state.xml will probably trash all work, so don't actually use it.

<config>
   <seti>
      <force_version_cpu>777</force_version_cpu>
      <force_version_gpu>888</force_version_gpu>
      <force_planclass_gpu>test_plan_class</force_planclass_gpu>
   </seti>
</config>

<force_version_cpu> Use this as a Cpu version number, no matter any other setting, may be any string. A space is included as well.
<force_version_gpu> Use this as a Gpu version number, no matter any other setting, may be any string. A space is included as well.
<force_planclass_gpu> Use this as a planclass, no matter any other setting, may be any string. A space is included as well.

A logging file can be found in: C:\Users\user_name\AppData\Roaming\eFMer\BoincScheduler\log