Skip to main content

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: either no_turns, or no_river (PioCloud only supports small saves.)
  • Algorithm: The algorithm to use for solving; one of pio_cfr, original_pio, or original_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 algorithm
  • original_pio is the original PioSOLVER algorithm which uses less memory than pio_cfr
  • original_pio_small is the original PioSOLVER algorithm combined with the small_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

Board Entry Options

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.

Estimate Before Running

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).

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.)

Job Page

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.

Spots List

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.

Download Page

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.

Cloud Viewer

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.