echrun is a command line tool tool that enables SRT customers to run ECHELON models on GPU-enabled cloud instances that have been pre-configured by SRT.
echrun can be installed on Windows, Linux or Mac OS:
On Linux or Mac, open a terminal window and run:
curl -L https://cloud.stoneridgetechnology.com/scripts/install.sh | shFollow the message to set up the PATH if needed.
On Windows, open a powershell window and run:
iwr https://cloud.stoneridgetechnology.com/scripts/install.ps1 -useb | iexIn the following examples, we assume echrun has been configured properly to run on the command line directly.
New user registration can be done on the command line:
$ echrun.exe user signup
Please enter your email address: xxx@company.com
( 6) Enter Password:
✗ Retype Password:
Please enter the verify code in the received registration email: You should receive a verification email with a security code during the registration process. For security reasons, you must verify your email address before continuing to the folowing steps. Please check your spam folder if needed.
You can always request to re-send the verification code by running echrun user resend. After receiving the code, you can run echrun user verify.
Once your email has been verified, you can login by entering your email and password:
$ echrun user login
Please input your email address: ...
Password: xxxx
User logged in ok.
If you need to change your password, you can do:
$ echrun user reset
The following operations assume the user has logged in.
echrun Commandsechrun is followed by a sub-command that indicates what kind of operation the user wants to do. Currently the supported sub-commands are:
To list available clusters:
$ echrun cluster list
+------------------------+------------------+-----------------------------+-----------+----------------+----------+-------------+------------+
| NAME | REGION | QUEUES | VENDOR | VERSIONS | MAX GPUS | GPU TYPE | COST SCALE |
+------------------------+------------------+-----------------------------+-----------+----------------+----------+-------------+------------+
| srt-hydra-us-east-2 | us-east, VA, USA | compute, compute4, compute8 | aws | 2024.1 | 8 | N/A | 1.00 |
| *srt-hydra-runpod-h100 | KS, USA | on_demand | runpod.io | 2024.1, 2024.2 | 4 | NVIDIA H100 | 2.00 |
+------------------------+------------------+-----------------------------+-----------+----------------+----------+-------------+------------+The * before the cluster name means that this cluster is the default cluster which will be used if --cluster flag is not used (if applicable) is ignored in other commands.
You can always set the default cluster by running echrun cluster select [CLUSTER-NAME] when multiple clusters are available.
Some clusters are based on the traditional queueing system that has an active header node. They support some querying capabilities even when there are no active jobs running. The following (list model, upload model and delete a model) sections are applicable to this kind of clusters.
When you first login, you can find a pre-installed SPE-10 model for the demo purpose.
# --cluster flag can be ignored here
$ echrun model list --cluster srt-hydra-us-east-1
+----------------------------------------+
| MODEL PATH |
+----------------------------------------+
| public:public-SPE10/SPE10.DATA |
+----------------------------------------+
☝ All models in cluster: SRT
🗸 model list ok.You can upload a zip file or a directory recursively that contains one or multiple DATA files by issuing echrun model upload command:
Examples:
# upload a zip file
$ ./bin/echrun.exe model upload model.zip modelA
🗸 request upload ok, starting to upload.
🗸 file staged ok.
🗸 upload completed
# upload a directory
$ ./bin/echrun.exe model upload modelA/ modelA
🗸 request upload ok, starting to upload.
🗸 file staged ok.
🗸 upload completed
# echrun will upload all the files under modelA/ directory
# please remove unused files for the best performance
# After a while, run model list
$ ./bin/echrun.exe model list
+------------------------------------------------------+
| MODEL PATH |
+------------------------------------------------------+
| private:modelA/model/reservoir.DATA |
| public:public-SPE10/SPE10.DATA |
+------------------------------------------------------+
☝ All models in cluster: srt-hydra-us-east-1
🗸 model list ok.Please note that all user-uploaded models are private and not shared with anyone else including SRT.
An example:
./bin/echrun.exe model delete private:modelA/model/reservoir.DATA
This section shows how to run a job with one command on all SRT cloud clusters.
Select one of the models above, and run:
# run the SPE10
$ echrun run public:public-SPE10/SPE10.DATA
🗸 job submitted ok
# or run the uploaded model with two GPUs and the maximum runtime of 30 minutes
$ echrun run --ngpus=2 --timeout=30 private:modelA/model/reservoir.DATAechrun run support many flags to configure the job, please run echrun run --help for detailed informatiln.
echrun run can also upload your local model by combining the model upload step. For example:
echrun run --version=2022.2.2 C:\model\root data\model.DATA example
# echrun will upload C:\model\root directory to the server under root directory
# and run example/root/data/model.DATA on the server
$ echrun model list public:public-SPE10/SPE10.DATA
+-------------------------------------------+---------+---------+---------+...
| JOB IDENTIFIER | VERSION | ELAPSED | QUEUE |...
+-------------------------------------------+---------+---------+---------+...
| public:public-SPE10/SPE10.DATA:1643829081 | 2022.1 | 1:00 | compute |...
| public:public-SPE10/SPE10.DATA:1643828560 | 2022.1 | 1:10 | compute |...
+-------------------------------------------+---------+---------+---------+...
☝ All jobs for model public:public-SPE10/SPE10.DATA @ srt-hydra-us-east-1The job identifier can be used to download the simulation output, as shown in the next section.
Job outputs can be downloaded either right after a job is finished or with echrun job download command:
# Download both log and egrid outputs. Notice they are separated by comma in the flag
$ ./echrun.exe job download --types=log,egrid --output=./ private:public-SPE10/SPE10.DATA:1664295008
Downloading output file type log
🗸 job output unzipped to 1664295008/SPE10_build.log
🗸 job output unzipped to 1664295008/SPE10_report.log
🗸 job output unzipped to 1664295008/SPE10_solver.log
🗸 job output unzipped to 1664295008/SPE10_wells.log
🗸 job output unzipped to 1664295008/SPE10.PRT
🗸 job output unzipped to 1664295008/SPE10.UNSMRY
🗸 job output unzipped to 1664295008/SPE10.SMSPEC
🗸 job output unzipped to 1664295008/SPE10.ECLEND
Downloading output file type egrid
🗸 job output unzipped to 1664295008/SPE10.EGRIDSeveral types of outputs are supported:
| types | files to be downloaded (if exist) |
|---|---|
| log | .log, .SMSPEC, .UNSMRY, .PRT, .ECLEND and .csv |
| init | *.INIT |
| egrid | *.EGRID |
| save | *.SAVE |
| rst | *.RST |
| rft | *.RFT |
# to check available GPU hour credits
$ echrun credit
Curent Credit: 20 GPU hours
Current Reserved: 4 hoursTo make a payment, just run:
$ echrun credit payIt will automatically open a link on your browser. Otherwise please copy the URL link shown at the prompt and open the link maually on your browser.
Please make sure you enter the same email address as your echrun account when you submit the payment.
echrun is evolving very rapidly. Please run echrun update frequently to get the latest binary.
echrun --help or echrun command --help is a good source to seek help information. echrun also support auto completion on the following four types of shells:
Please run echrun completion [TYPE] --help to see how to set up the auto-completion feature.
Your feedback is highly appreciated! Please feel free to email us at echelon@stoneridgetechnology.com for any questions or suggestions.