Posts by Zeev Suraski

1) Message boards : Web interfaces : Cached project forum pages? (Message 15973)
Posted 18 Mar 2008 by Zeev Suraski
Post:
Quick crosspost - I believe that using either session_cache_limiter() or session.cache_limiter would solve the problem (to be extra clear - that has to be done on the server side in the PHP code or configuration).
2) Message boards : BOINC Manager : Improving BOINC desktop experience (performance wise) (Message 15972)
Posted 18 Mar 2008 by Zeev Suraski
Post:
Sorry to be offtopic but I just noticed something...

Zeev, are you *that* Zeev Suraski?? o_O


Yep, I'm afraid so...


Welcome. In another thread we were wondering if the PHP Expires: headers is somebody's birthday? It's 26 years ago. Anybody you know?


Quite a nice guess - it's Sascha Schumann's birthday, the guy that was the author of the session module many years ago. It's hardcoded in there - I have to admit - I never noticed it until now :)

You can get around the behavior you're seeing by modifying the value of session.cache_limiter (or use session_cache_limiter() - http://www.php.net/manual/en/function.session-cache-limiter.php ). You probably want 'public', but I haven't read the thread thoroughly enough to determine that for certain...
3) Message boards : BOINC Manager : Improving BOINC desktop experience (performance wise) (Message 15882)
Posted 13 Mar 2008 by Zeev Suraski
Post:
Sorry to be offtopic but I just noticed something...

Zeev, are you *that* Zeev Suraski?? o_O


Yep, I'm afraid so...
4) Message boards : BOINC Manager : Improving BOINC desktop experience (performance wise) (Message 15870)
Posted 13 Mar 2008 by Zeev Suraski
Post:
Just a quick hint for those who may wish to automate BOINC going slower when certain apps are run - it took me a while to find a script that does that and create my own variation, here it is. It assumes you have two different config files that you want to use in the two different states. Added bonus - it sends Vista's annoying TrustedInstaller to low priority, not that it helps that much... I'm also putting in a script that restores BOINC to full throttle when these apps terminate (of course, there's no 'stack' here, so if you run two 'demanding' apps, and one terminates while one continues to run - it will still restore BOINC to full throttle - but I think it's not such a common use-case).


---
Const PRI_NORMAL = 32
Const PRI_LOW = 64
Const PRI_HIGH = 128
Const PRI_BELOW_NORMAL = 16384
Const PRI_ABOVE_NORMAL = 32768

strComputer = "."

Set objWMIService = GetObject("winmgmts:" & strComputer & "\root\cimv2")

Set colProcesses = objWMIService.ExecNotificationQuery _
("Select * From __InstanceCreationEvent Within 5 Where TargetInstance ISA 'Win32_Process' OR TargetInstance ISA 'Win32_Service'")

Do While True
Set objLatestProcess = colProcesses.NextEvent

If objLatestProcess.TargetInstance.Name = "wmplayer.exe" _
or objLatestProcess.TargetInstance.Name = "ehshell.exe" _
Then
objLatestProcess.TargetInstance.SetPriority(PRI_HIGH)

' delete existing config
Set fso = CreateObject("Scripting.FileSystemObject")
Set aFile = fso.GetFile("c:\Progra~1\BOINC\global_prefs_override.xml")
aFile.Delete

' Use 2-CPU config
fso.CopyFile "c:\Progra~1\BOINC\global_prefs_override.xml.2cpu", "c:\Progra~1\BOINC\global_prefs_override.xml", TRUE

' Reload config
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.CurrentDirectory = "c:\Progra~1\BOINC"
Return = WshShell.Run("boinccmd.exe --read_global_prefs_override", 1, false)
End If
If objLatestProcess.TargetInstance.Name = "TrustedInstaller.exe" Then
objLatestProcess.TargetInstance.SetPriority(PRI_LOW)
End If
Loop
---
---
strComputer = "."

Set objWMIService = GetObject("winmgmts:" & strComputer & "\root\cimv2")

Set colProcesses = objWMIService.ExecNotificationQuery _
("Select * From __InstanceDeletionEvent Within 5 Where TargetInstance ISA 'Win32_Process'")

Do While True
Set objLatestProcess = colProcesses.NextEvent

If objLatestProcess.TargetInstance.Name = "wmplayer.exe" _
or objLatestProcess.TargetInstance.Name = "ehshell.exe" _
Then
' delete existing config
Set fso = CreateObject("Scripting.FileSystemObject")
Set aFile = fso.GetFile("c:\Progra~1\BOINC\global_prefs_override.xml")
aFile.Delete

' Use 16-CPU config
fso.CopyFile "c:\Progra~1\BOINC\global_prefs_override.xml.16cpu", "c:\Progra~1\BOINC\global_prefs_override.xml", TRUE

' Reload config
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.CurrentDirectory = "c:\Progra~1\BOINC"
Return = WshShell.Run("boinccmd.exe --read_global_prefs_override", 1, false)
End If
Loop
---

Name these files with .vbs extensions, and run with either cscript or wscript (I run it with wscript through the Task Scheduler on login).
5) Message boards : BOINC Manager : Improving BOINC desktop experience (performance wise) (Message 15796)
Posted 11 Mar 2008 by Zeev Suraski
Post:
RAM. Experienced people have noticed memory *bandwidth* (not *amount* of memory used) caused slowdowns on machines with slow RAM sticks or memory controllers. SETI app reading stuff from memory over and over again (way bigger than the processor cache) caused slowdown on any other application on that particular (crappy) computer.


Well again I can't say anything with certainty, but both the memory sticks and controllers should be pretty fast on this particular box. FWIW, memory gets the top 5.9 performance rating in Vista's experience rating (as do all of the other components on this particular box).

I don't know much about the memory requirements of the SETI@home client that I'm running, but I'm doubtful it's more demanding than video rendering...
6) Message boards : BOINC Manager : Improving BOINC desktop experience (performance wise) (Message 15775)
Posted 10 Mar 2008 by Zeev Suraski
Post:
FWIW - I doubt the slowdown's related to anything but the CPU activity (could be wrong of course).

On my system, like on many others' - there's plenty of stuff running all the time, including stuff that uses the disk. In fact - I can watch HD just fine while rendering a movie - which is both CPU-bound and disk-bound, as long as I set the affinity to use fewer cores. Same applies of course to BOINC running on fewer cores.

That makes me believe that having a separate while-in-use setting for the number of cores would make a very meaningful improvement.
7) Message boards : BOINC Manager : Improving BOINC desktop experience (performance wise) (Message 15740)
Posted 10 Mar 2008 by Zeev Suraski
Post:
Hi,

I've been using BOINC for a few months now on a few desktop machines running Windows (XP/Vista). Long story short - despite having BOINC and the crunchers run with 'idle' priority, they certainly do affect the responsiveness and performance of the system. For instance, when viewing a video clip (especially a more demanding HD one), you can definitely see that video becomes slightly choppy, or significantly more choppy if it's a slower machine.

I do have two suggestions that would enable me (and I believe many others) to let BOINC use many more of my system resources:

1. With the growing number of cores on CPUs, it would be great if I could specify the number of cores/CPUs to use in case the computer's in use. I'm pretty sure that if BOINC could automatically reduce the number of cores it uses so that one core is left completely idle, it would completely take care of the responsiveness issue and smooth video playback.

2. Provide a separate set of settings for when the computer is in use.
Today - you can either tell BOINC that it can use the computer while it's in use - or that it cannot and that it has to wait x minutes before it runs. However, you cannot tell BOINC to, say, use at most 50% CPU if the computer is in use. such a setting could further improve the ability to have BOINC go on running, instead of completely shutting down during computer use.

Sorry if this has been discussed before - Search fails with an error right now.

TIA,

Zeev




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.