Jobs
A job is a set of parameters that defines what to solve.
Creating New Jobs
The quickstart guide walks you through the steps to create a new job. The steps are:
This page provides more details about the job settings and how to manage jobs.
Script
The best way to input the script is to define it in PioViewer, use the PioViewer feature to copy the script to the clipboard, and paste it into the job creation form, as described in the quickstart guide.
This will ensure that the script is correctly defined and contains the metadata needed by PioViewer to best display the results.
Job Parameters
Jobs take the following parameters:
- Accuracy: The value passed to the
set_accuracy
command, in % of pot. - Save Size: Passed to the
dump_tree
command: eitherno_turns
, orno_river
(PioCloud only supports small saves.) - Algorithm: The algorithm to use for solving; one of
pio_cfr
,original_pio
, ororiginal_pio_small
- Run Time Limit: The maximum time to allow the job to run, in seconds.
- Test Machine Benchmark: A scaling parameter for the run time lmit.
- Boards: The boards to run the job on.
Algorithm
You need to explicitly select the algorithm to use for solving (the auto
option is not available on PioCloud). The choice of algorithm allows you to balance solving speed and memory usage.
pio_cfr
is the Pio implementation of the CFR algorithmoriginal_pio
is the original PioSOLVER algorithm which uses less memory than pio_cfroriginal_pio_small
is the original PioSOLVER algorithm combined with thesmall_strats on
option, which further reduces memory usage
The default is pio_cfr
, which is usually going to be the fastest for many jobs. However, large trees with many bet sizes will often run faster with the original_pio
algorithm.
If you encounter a warning that job you want to run does not fit in the memory available, consider switching to the original_pio
algorithm for this job. If it still does not fit in memory, you can try the original_pio_small
algorithm, which uses even less RAM.
Run Time Limit and Test Machine Benchmark
PioCloud jobs require a Run Time Limit to be set. This is the maximum time in seconds that the job will run. This parameter is used in conjunctions with the Test Machine Benchmark parameter, which is a scaling factor for the run time limit.
If you have tested solving the sim on your machine and have fine-tuned the run-time limit, you can set the Test Machine Benchmark to the value reported by the bench
command to scale the run time limit for the PioCloud machines. If you have not done this, then just leave the value to the default.
Boards
There are several ways to specify the boards for the job:
- Subset: Pick from one of the subsets included in the preflop_subsets folder of the PioSOLVER distribution by the number of flops in the subset
- Upload a File: Upload a file with one board per line
- 1755: All 1755 strategically unique flops
- Text entry: Enter the boards you want solved, one per line
The boards are specified in the same format as in PioViewer, e.g.,
7s6h2s
Ts8s2h
KsJh4h
Js6s5h
AsTs7h
[...]
Boards can optionally include weights (though weights are not currently used anywhere in PioCloud):
Ks5h3d:12.07
As8s3h:11.38
Qs9h4d:18.3
[...]
Jobs solve boards in the order they are specified, so, for example, if you include a cost limit, you can input the more important boards first.
Cost Control
Jobs on PioCloud are charged by the amount of time they run. The cost control page informs you of the worst-case cost of running the job (that is, assuming all boards run until the run time limit is reached). Most jobs end up being much cheaper than the worst-case cost, so you should not be scared away from running a job due to a high worst-case cost, but it is important to understand how you can control the cost of your jobs.
Estimate Before Running
You can better understand cost by running one board of a job, which you can do by selecting the Estimate before running
option. This will run just one board (the first board specified) of the job and notify you when finished. Knowing how long one of the boards took to solve can help you get a sense of the cost and decide if you want to continue running the job or not.
Cost Limits
Another way to control cost is to assign a cost limit to a job. This will run the job until the cost limit is reached, and then notify you. When a job has reached its cost limit, you can choose to either decare the job as finished, or allow it to continue running (optionally with a new cost limit).
Job Execution
The boards of all scheduled jobs are solved in parallel on the PioCloud infrastructure. The scheduler tries to ensure that all jobs make progress, and the amount of parallization you will experience for your jobs depends on the overall utilization of the PioCloud infrastructure.
Managing Jobs
After a job is started, you are brought to the job page, which show the status of the job and gives you the option to pause or cancel it. You can also download any sims that have been solved. (Note: any boards that have been started will run to completion, even if you cancel the job.)
The job pages is a child of the spot page, and you can return to it by listing your spots, picking the spot that owns the job, and following the link to the job.
Accessing Results
Once a job has finished, you can download the results from the download page and you can view the results in the cloud viewer.
Downloading
The download page is linked from both the job and the spot pages. Download is always done at the spot level, and if a board has been solved multiple times in a spot, the lastest result is the one that will be downloaded.
The easiest way to download results is from PioViewer, which will efficiently and robustly download all the sims in a spot. The download pages explains some alternatives for downloading the results as well, which you can use if your version of PioViewer does not support downloading from PioCloud.
Viewing
PioCloud includes a viewer for browsing spots. It is not as feature-rich as PioViewer, but it allows you to view the results of a job in the cloud without needing to download them, and is designed to work on both desktop and mobile devices.
The cloud viewer is being actively developed, and if you have feedback or suggestions for features, please reach out to us on the Discord.
Learn more about the cloud viewer in the Cloud Viewer documentation.
Sharing Results
Spots in PioCloud can be shared with others by sending them a link to the download page for the spot. If you share a spot with someone, they will need to create a PioCloud account, if they do not have one, but once they are logged in, they can access the sims from the spot.