Rescale の API の概要

Rescale では最近、いくつかのエキサイティングな機能を開発中で非常に忙しくしています。 お客様の要望リストの最上位にある項目の XNUMX つは、プログラムによってプラットフォーム上にジョブをバーストする機能です。 それを可能にするために、私たちは公開 API の作成に取り組んできました。

現在、私たちの Web サービスは Django アプリであり、そのエンドポイントは Javascript クライアントによって呼び出され、ジョブの作成と監視が行われます。 内部データ モデルを具体化し、既存の Django ビューを公開 RESTful API に変換するのは、かなりの作業でした。 この目的のために、最終的に Django REST フレームワークを使用することになりました。

Django REST Framework (DRF) は、Django の強力なツールキットです。 API のシリアル化、逆シリアル化、認証、ルーティングを処理するための、明確で簡単に拡張可能なインターフェイスを提供します。 DRF はマルチレベルのリレーショナル モデルと非常にうまく連携し、Django フォームを DRF シリアライザーに移行するのは非常に簡単でした。 実際、DRF を使用すると、シリアライザーとビューセットの多くの機能によりカスタム検証が冗長になったため、コードがより明確かつ簡潔になりました。

再スケール ジョブの構造
API エンドポイントの詳細に入る前に、まず Rescale ジョブの定義方法を見てみましょう。Rescale ジョブは、ジョブ分析とジョブ変数という 2 種類の主要オブジェクトで構成されます。ジョブには、1 つ以上のジョブ変数を含めることができます。ジョブ変数は、ユーザーがパラメーター スイープを実行するために指定できる入力パラメーターです。ジョブ分析とは、そのジョブで実行するシミュレーション ソフトウェア パッケージ (Rescale 用語では分析コード) を指します。各ジョブ分析オブジェクトには、分析コード、入力コマンド、ハードウェア選択、およびその特定のジョブ分析に関連付けられたファイルが含まれます。ジョブを実行するには、少なくとも 1 つのジョブ分析が必要です。

ユーザーがアップロードしたバイナリ「run_doe」を使用して「パラメータ スイープ」(実験計画法 (DOE) と呼ばれることもあります) を実行するジョブの例の JSON は次のようになります。

job_data = { 'name':'DOE テスト ジョブ', 'jobvariables':[ { 'name':'index', 'variableType':'Param', 'valueGeneratorType':'FixedRange', 'valueGeneratorSettings':{ 'minvalue ':1, 'maxvalue':10, 'increment':1 } } ], 'jobanalyses':[ { 'analyses':{ 'code':'user_include' }, 'command':'./run_doe', ' hardware':{ 'coresPerSlot':1, 'coreType':'standard' }, 'inputFiles':[ { 'id':'pCTmk' } ] } ] }

APIエンドポイント
API を使用してファイルを Rescale プラットフォームにアップロードし、ジョブの JSON BLOB を構築できます。 その後、関連する API エンドポイントを使用してジョブを作成、送信、監視できます。 すべての API エンドポイントには Web 経由でアクセスできますが、現在サポートしている API 呼び出しのセットを次のように減らした Python クライアントを構築しました。 ファイルをアップロードする ダウンロードファイル ジョブの作成 submit_job ステータスの取得 get_files。 API は現在プライベート ベータ版です。

API にアクセスするためのトークンを取得することに興味がありますか?

弊社の専門家にお問い合わせいただければ、Rescale がどのようにしてコンピューティングを次のレベルに引き上げることができるかご説明いたします。

類似の投稿