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 ジョブは、jobanalyses と jobvariables という XNUMX 種類の主要オブジェクトで構成されます。 ジョブには XNUMX つ以上のジョブ変数を含めることができます。 ジョブ変数は、パラメーター スイープを実行するためにユーザーが指定できる入力パラメーターです。 Jobanalyses は、そのジョブで実行するシミュレーション ソフトウェア パッケージ (Rescale 用語では分析コード) を指します。 各ジョブ分析オブジェクトには、分析コード、入力コマンド、ハードウェア選択、およびその特定のジョブ分析に関連付けられたファイルが含まれています。 ジョブを実行するには、少なくとも XNUMX つのジョブ分析が必要です。
ユーザーがアップロードしたバイナリ「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 にアクセスするためのトークンの取得に興味がある場合、または単にニーズに最適なトークンを取得する方法を知りたい場合は、次のアドレスまでお問い合わせください。

類似の投稿