Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

README.md

PSBoinc

PowerShell module for managing BOINC clients on local and remote hosts

PSBoinc in PSGallery

Install via Install-Module PSBoinc -Scope CurrentUser

Usage

RPC cmdlets operate in local or remote sessions. Local sessions are authenticated automatically:

Enter-BoincSession

Remote sessions require the RPC password (can be looked up from gui_rpc_auth.cfg):

Enter-BoincSession "192.168.0.11" "9096083b1c5a02d473a81784eb8e0862"

After a session has been opened, RPC cmdlets can be used to manage the client. Sessions are closed explicitly with Exit-BoincSession and implicitly when opening another session.

Help

Get a list of all cmdlets in PSBoinc:

Get-Command -Module PSBoinc

Get help on command Add-BoincAccountManager:

Get-Help Add-BoincAccountManager -Detailed

Examples

Do not receive new work from any project

Get-BoincProject | Set-BoincProject -NoMoreWork

Abort all tasks that are at least 3 days behind their deadline

Get-BoincTask | where { ([DateTimeOffset]::Now - $_.ReportDeadline).TotalDays -ge 3 } | Stop-BoincTask

Show a list of all current tasks from Rosetta@home and PrimeGrid, grouped by project and sorted by progress

Get-BoincTask -Project rosetta*,prime* | sort FractionDone -Descending | fl -GroupBy ProjectUrl -Property WorkunitName,FractionDone

Suspend tasks after their next checkpoint and shutdown the machine

while ($true)
{
    Get-BoincTask | where { ($_.CurrentCpuTime - $_.CheckpointCpuTime).TotalSeconds -le 30 } | Suspend-BoincTask
    if (-not (Get-BoincTask | where Suspended -NE $true))
    {
        break
    }
    Start-Sleep -Seconds 10
}
Stop-Computer

Attach multiple remote clients to a project

"pc-01","pc-02","pc-03" | foreach { 
    Enter-BoincSession $_ "9096083b1c5a02d473a81784eb8e0862"
    Add-BoincProject "http://boinc.bakerlab.org/rosetta" "johndoe@example.com" "P@ssW0rD!"
}

Show benchmark results for a list of remote clients

"pc-01","pc-02","pc-03" | foreach { 
    Enter-BoincSession $_
    $hostinfo = Get-BoincHostInformation
    [pscustomobject]@{Machine=$_;Whetstone=$hostinfo.FloatingPointOperations;Drhystone=$hostinfo.IntegerOperations}
}

About

PowerShell module for managing BOINC clients on local and remote hosts

Topics

Resources

License

Packages

No packages published
You can’t perform that action at this time.