Skip to content

Instantly share code, notes, and snippets.

@yohm
Last active February 14, 2017 14:06
Show Gist options
  • Save yohm/ee7e607d63660cf67da31c8bb44f3738 to your computer and use it in GitHub Desktop.
Save yohm/ee7e607d63660cf67da31c8bb44f3738 to your computer and use it in GitHub Desktop.
An introductory sample of OACIS Python APIs.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# First of all, you need to import OACIS module. Add the OACIS_ROOT path to sys.path to import `oacis` module\n",
"import os,sys\n",
"sys.path.append( os.environ['OACIS_ROOT'] )\n",
"import oacis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Prerequisites\n",
"\n",
"Before running the following samples, please prepare a sample simulator as follows.\n",
"\n",
"- Name: sample_simulator\n",
"- Parameter definitions:\n",
" - \"p1\", Float, 1.0\n",
" - \"p2\", Float, 2.0\n",
" - \"p3\", Float, 3.0\n",
"- Command:\n",
" `ruby -r json -e 'j = JSON.load(File.read(\"_input.json\")); sum=%w(p1 p2 p3).map{|k| j[k]}.inject(:+); puts({sum: sum}.to_json)' > _output.json`\n",
"- Input type: JSON\n",
"- Executable_on : localhost"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"if oacis.Simulator.where(name=\"sample_simulator\").size() == 0:\n",
" sim = {\n",
" \"name\": \"sample_simulator\",\n",
" \"command\": \"ruby -r json -e 'j = JSON.load(File.read(\\\"_input.json\\\")); sum=%w(p1 p2 p3).map{|k| j[k]}.inject(:+); puts({sum: sum}.to_json)' > _output.json\",\n",
" \"support_input_json\": True,\n",
" \"parameter_definitions\": [\n",
" {\"key\": \"p1\", \"type\": \"Float\", \"default\": 1.0},\n",
" {\"key\": \"p2\", \"type\": \"Float\", \"default\": 2.0},\n",
" {\"key\": \"p3\", \"type\": \"Float\", \"default\": 3.0}\n",
" ],\n",
" \"executable_on\": [ oacis.Host.find_by_name(\"localhost\")]\n",
" }\n",
" oacis.Simulator.create(sim)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'#<ParameterSet _id: 58a305c43192d529a5e4136b, created_at: 2017-02-14 13:27:32 UTC, updated_at: 2017-02-14 13:27:59 UTC, v: {\"p1\"=>10.0, \"p2\"=>20.0, \"p3\"=>30.0}, runs_status_count_cache: {\"finished\"=>5, \"created\"=>0, \"submitted\"=>0, \"running\"=>0, \"failed\"=>0}, progress_rate_cache: -1000000, to_be_destroyed: false, simulator_id: BSON::ObjectId(\\'58a305b53192d529a5e41367\\')>'"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# First, we are going to show how to create ParameterSets and Runs.\n",
"sim = oacis.Simulator.find_by_name('sample_simulator')\n",
"ps = sim.find_or_create_parameter_set( {\"p1\":10.0,\"p2\":20.0,\"p3\":30.0} )\n",
"ps.inspect()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"['58a305c93192d529a5e4136c',\n",
" '58a305c93192d529a5e4136d',\n",
" '58a305c93192d529a5e4136e',\n",
" '58a305c93192d529a5e4136f',\n",
" '58a305c93192d529a5e41370']"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# When creating runs, you need to specify the host to which the jobs are submitted to.\n",
"# We may need to set \"host_parameters\" which specify the parameters required by job schedulers.\n",
"\n",
"host = oacis.Host.find_by_name(\"localhost\")\n",
"new_runs = ps.find_or_create_runs_upto( 5, submitted_to= host )\n",
"new_run_ids = [ str( run.id() ) for run in new_runs ]\n",
"new_run_ids"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'p1': 1.0, 'p3': 3.0, 'p2': 2.0}\n",
"['58a305db3192d529a5e41372']\n",
"{'p1': 1.0, 'p3': 3.0, 'p2': 4.0}\n",
"['58a305db3192d529a5e41378']\n",
"{'p1': 1.0, 'p3': 3.0, 'p2': 6.0}\n",
"['58a305db3192d529a5e4137e']\n",
"{'p1': 1.0, 'p3': 3.0, 'p2': 8.0}\n",
"['58a305db3192d529a5e41384']\n",
"{'p1': 1.0, 'p3': 3.0, 'p2': 10.0}\n",
"['58a305db3192d529a5e4138a']\n",
"{'p1': 1.0, 'p3': 3.0, 'p2': 12.0}\n",
"['58a305dc3192d529a5e41390']\n",
"{'p1': 1.0, 'p3': 3.0, 'p2': 14.0}\n",
"['58a305dc3192d529a5e41396']\n",
"{'p1': 1.0, 'p3': 3.0, 'p2': 16.0}\n",
"['58a305dc3192d529a5e4139c']\n",
"{'p1': 1.0, 'p3': 3.0, 'p2': 18.0}\n",
"['58a305dc3192d529a5e413a2']\n",
"{'p1': 1.0, 'p3': 3.0, 'p2': 20.0}\n",
"['58a305dc3192d529a5e413a8']\n",
"{'p1': 2.0, 'p3': 3.0, 'p2': 2.0}\n",
"['58a305dd3192d529a5e413ae']\n",
"{'p1': 2.0, 'p3': 3.0, 'p2': 4.0}\n",
"['58a305dd3192d529a5e413b4']\n",
"{'p1': 2.0, 'p3': 3.0, 'p2': 6.0}\n",
"['58a305dd3192d529a5e413ba']\n",
"{'p1': 2.0, 'p3': 3.0, 'p2': 8.0}\n",
"['58a305dd3192d529a5e413c0']\n",
"{'p1': 2.0, 'p3': 3.0, 'p2': 10.0}\n",
"['58a305dd3192d529a5e413c6']\n",
"{'p1': 2.0, 'p3': 3.0, 'p2': 12.0}\n",
"['58a305dd3192d529a5e413cc']\n",
"{'p1': 2.0, 'p3': 3.0, 'p2': 14.0}\n",
"['58a305dd3192d529a5e413d2']\n",
"{'p1': 2.0, 'p3': 3.0, 'p2': 16.0}\n",
"['58a305de3192d529a5e413d8']\n",
"{'p1': 2.0, 'p3': 3.0, 'p2': 18.0}\n",
"['58a305de3192d529a5e413de']\n",
"{'p1': 2.0, 'p3': 3.0, 'p2': 20.0}\n",
"['58a305de3192d529a5e413e4']\n",
"{'p1': 3.0, 'p3': 3.0, 'p2': 2.0}\n",
"['58a305de3192d529a5e413ea']\n",
"{'p1': 3.0, 'p3': 3.0, 'p2': 4.0}\n",
"['58a305de3192d529a5e413f0']\n",
"{'p1': 3.0, 'p3': 3.0, 'p2': 6.0}\n",
"['58a305de3192d529a5e413f6']\n",
"{'p1': 3.0, 'p3': 3.0, 'p2': 8.0}\n",
"['58a305df3192d529a5e413fc']\n",
"{'p1': 3.0, 'p3': 3.0, 'p2': 10.0}\n",
"['58a305df3192d529a5e41402']\n",
"{'p1': 3.0, 'p3': 3.0, 'p2': 12.0}\n",
"['58a305df3192d529a5e41408']\n",
"{'p1': 3.0, 'p3': 3.0, 'p2': 14.0}\n",
"['58a305df3192d529a5e4140e']\n",
"{'p1': 3.0, 'p3': 3.0, 'p2': 16.0}\n",
"['58a305df3192d529a5e41414']\n",
"{'p1': 3.0, 'p3': 3.0, 'p2': 18.0}\n",
"['58a305e03192d529a5e4141a']\n",
"{'p1': 3.0, 'p3': 3.0, 'p2': 20.0}\n",
"['58a305e03192d529a5e41420']\n",
"{'p1': 4.0, 'p3': 3.0, 'p2': 2.0}\n",
"['58a305e03192d529a5e41426']\n",
"{'p1': 4.0, 'p3': 3.0, 'p2': 4.0}\n",
"['58a305e03192d529a5e4142c']\n",
"{'p1': 4.0, 'p3': 3.0, 'p2': 6.0}\n",
"['58a305e03192d529a5e41432']\n",
"{'p1': 4.0, 'p3': 3.0, 'p2': 8.0}\n",
"['58a305e13192d529a5e41438']\n",
"{'p1': 4.0, 'p3': 3.0, 'p2': 10.0}\n",
"['58a305e13192d529a5e4143e']\n",
"{'p1': 4.0, 'p3': 3.0, 'p2': 12.0}\n",
"['58a305e13192d529a5e41444']\n",
"{'p1': 4.0, 'p3': 3.0, 'p2': 14.0}\n",
"['58a305e13192d529a5e4144a']\n",
"{'p1': 4.0, 'p3': 3.0, 'p2': 16.0}\n",
"['58a305e13192d529a5e41450']\n",
"{'p1': 4.0, 'p3': 3.0, 'p2': 18.0}\n",
"['58a305e23192d529a5e41456']\n",
"{'p1': 4.0, 'p3': 3.0, 'p2': 20.0}\n",
"['58a305e23192d529a5e4145c']\n",
"{'p1': 5.0, 'p3': 3.0, 'p2': 2.0}\n",
"['58a305e23192d529a5e41462']\n",
"{'p1': 5.0, 'p3': 3.0, 'p2': 4.0}\n",
"['58a305e23192d529a5e41468']\n",
"{'p1': 5.0, 'p3': 3.0, 'p2': 6.0}\n",
"['58a305e23192d529a5e4146e']\n",
"{'p1': 5.0, 'p3': 3.0, 'p2': 8.0}\n",
"['58a305e23192d529a5e41474']\n",
"{'p1': 5.0, 'p3': 3.0, 'p2': 10.0}\n",
"['58a305e23192d529a5e4147a']\n",
"{'p1': 5.0, 'p3': 3.0, 'p2': 12.0}\n",
"['58a305e23192d529a5e41480']\n",
"{'p1': 5.0, 'p3': 3.0, 'p2': 14.0}\n",
"['58a305e33192d529a5e41486']\n",
"{'p1': 5.0, 'p3': 3.0, 'p2': 16.0}\n",
"['58a305e33192d529a5e4148c']\n",
"{'p1': 5.0, 'p3': 3.0, 'p2': 18.0}\n",
"['58a305e33192d529a5e41492']\n",
"{'p1': 5.0, 'p3': 3.0, 'p2': 20.0}\n",
"['58a305e33192d529a5e41498']\n"
]
}
],
"source": [
"# A sample to make multiple parameter sets\n",
"import numpy as np\n",
"sim = oacis.Simulator.where( name = 'sample_simulator' ).first()\n",
"p1_values = np.linspace(1.0,5.0, 5)\n",
"p2_values = np.linspace(2.0, 20.0, 10)\n",
"base_param = sim.default_parameters()\n",
"base_param\n",
"\n",
"for p1 in p1_values:\n",
" for p2 in p2_values:\n",
" param = base_param.copy()\n",
" param.update( {'p1':p1, 'p2':p2} )\n",
" print( param )\n",
" ps = sim.find_or_create_parameter_set( param )\n",
" runs = ps.find_or_create_runs_upto(1, submitted_to=host)\n",
" print( [ run.id().to_s() for run in runs] )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Getting Results\n",
"\n",
"We are going to investigate the dependency of \"p1\" and \"p2\" against the results.\n",
"**Run the below cells after the above jobs are finished.**"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sample_simulator\n",
"ruby -r json -e 'j = JSON.load(File.read(\"_input.json\")); sum=%w(p1 p2 p3).map{|k| j[k]}.inject(:+); puts({sum: sum}.to_json)' > _output.json\n",
"['localhost']\n",
"255\n",
"255\n"
]
}
],
"source": [
"sim = oacis.Simulator.find_by_name('sample_simulator')\n",
"print( sim.name() )\n",
"print( sim.command() )\n",
"print( [h.name() for h in sim.executable_on()] )\n",
"\n",
"print( len( sim.runs() ) )\n",
"print( len(sim.runs().where({'status':'finished'})) )"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"58a305db3192d529a5e41371 {'p1': 1.0, 'p2': 2.0, 'p3': 3.0} 5 5\n",
"{'created': 0, 'finished': 5, 'running': 0, 'submitted': 0, 'failed': 0}\n",
"[6.0, 5]\n"
]
}
],
"source": [
"# ParameterSet of {p1: 1.0, p2: 2.0, p3: 3.0}\n",
"ps = sim.find_parameter_set( {'p1':1.0, 'p2':2.0, 'p3':3.0} )\n",
"\n",
"# Here are some examples of fields of ParameterSet\n",
"print( ps.id(), ps.v(), ps.runs().count(), ps.runs().where({'status':'finished'}).count() )\n",
"print( ps.runs_status_count() )\n",
"print( ps.average_result(\"sum\") )\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"58a305db3192d529a5e41372\n",
"finished\n",
"{'sum': 6.0}\n",
"0.07\n",
"2017-02-14T13:28:01+00:00\n",
"/Users/murase/work/oacis/public/Result_development/58a305b53192d529a5e41367/58a305db3192d529a5e41371/58a305db3192d529a5e41372\n"
]
}
],
"source": [
"# Getting a Run\n",
"run = ps.runs().first()\n",
"\n",
"# Here are some examples of fields of Run\n",
"for field in [ run.id(), run.status(), run.result(), run.cpu_time(), run.finished_at(), run.dir() ]:\n",
" print( field )"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"p2 == 10.0 and p3 == 3.0\n",
"{'p1': 1.0, 'p2': 10.0, 'p3': 3.0}\n",
"{'p1': 2.0, 'p2': 10.0, 'p3': 3.0}\n",
"{'p1': 3.0, 'p2': 10.0, 'p3': 3.0}\n",
"{'p1': 4.0, 'p2': 10.0, 'p3': 3.0}\n",
"{'p1': 5.0, 'p2': 10.0, 'p3': 3.0}\n",
"p1 <= 2 and p2 > 15.0 and p3 == 3.0\n",
"{'p1': 2.0, 'p2': 20.0, 'p3': 3.0}\n",
"{'p1': 2.0, 'p2': 18.0, 'p3': 3.0}\n",
"{'p1': 2.0, 'p2': 16.0, 'p3': 3.0}\n",
"{'p1': 1.0, 'p2': 20.0, 'p3': 3.0}\n",
"{'p1': 1.0, 'p2': 18.0, 'p3': 3.0}\n",
"{'p1': 1.0, 'p2': 16.0, 'p3': 3.0}\n",
"p1 is in [2,4] and p2==20\n",
"{'p1': 4.0, 'p2': 20.0, 'p3': 3.0}\n",
"{'p1': 2.0, 'p2': 20.0, 'p3': 3.0}\n",
"p1 <= 3 and p2 <= 6.0, ordered by p1 in ascending order and p2 in descending order\n",
"{'p1': 1.0, 'p2': 6.0, 'p3': 3.0}\n",
"{'p1': 2.0, 'p2': 6.0, 'p3': 3.0}\n",
"{'p1': 3.0, 'p2': 6.0, 'p3': 3.0}\n",
"{'p1': 1.0, 'p2': 4.0, 'p3': 3.0}\n",
"{'p1': 2.0, 'p2': 4.0, 'p3': 3.0}\n",
"{'p1': 3.0, 'p2': 4.0, 'p3': 3.0}\n",
"{'p1': 1.0, 'p2': 2.0, 'p3': 3.0}\n",
"{'p1': 2.0, 'p2': 2.0, 'p3': 3.0}\n",
"{'p1': 3.0, 'p2': 2.0, 'p3': 3.0}\n"
]
}
],
"source": [
"# Search ParameterSets by condition\n",
"sim = oacis.Simulator.where(name=\"sample_simulator\").first()\n",
"\n",
"# The followings are some example queries which you might find useful.\n",
"# Since a ParameterSet contains the parameters in the field of `v`, you need to issue an query against `v`.\n",
"# See http://www.rubydoc.info/github/mongoid/origin/Origin/Selectable\n",
"print(\"p2 == 10.0 and p3 == 3.0\")\n",
"found = sim.parameter_sets().where({\"v.p2\":10.0, \"v.p3\":3.0}).asc(\"v.p1\")\n",
"for ps in found:\n",
" print( ps.v() )\n",
"\n",
"print(\"p1 <= 2 and p2 > 15.0 and p3 == 3.0\")\n",
"found = sim.parameter_sets().lte( {\"v.p1\":2} ).gt( {\"v.p2\":15.0} ).where( {\"v.p3\":3.0} )\n",
"for ps in found:\n",
" print( ps.v() )\n",
"\n",
"print(\"p1 is in [2,4] and p2==20\")\n",
"found = sim.parameter_sets().send('in', {\"v.p1\":[2,4]} ).where( {\"v.p2\":20} )\n",
"for ps in found:\n",
" print( ps.v() )\n",
"\n",
"print(\"p1 <= 3 and p2 <= 6.0, ordered by p1 in ascending order and p2 in descending order\")\n",
"found = sim.parameter_sets().lte( {\"v.p1\":3, \"v.p2\": 6.0} ).order_by( {\"v.p1\":'asc', \"v.p2\":'desc'} )\n",
"for ps in found:\n",
" print( ps.v() )"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/murase/.pyenv/versions/miniconda3-4.1.11/envs/ml/lib/python3.5/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n",
" warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n",
"/Users/murase/.pyenv/versions/miniconda3-4.1.11/envs/ml/lib/python3.5/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n",
" warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x104ddf2e8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot results using matplotlib\n",
"import matplotlib.pyplot as plt\n",
"\n",
"sim = oacis.Simulator.where(name='sample_simulator').first()\n",
"parameter_sets = sim.parameter_sets().where( {\"v.p1\":1.0, \"v.p3\":3.0} ).asc(\"v.p2\")\n",
"x = []\n",
"y = []\n",
"for ps in parameter_sets:\n",
" x.append( ps.v()[\"p2\"] )\n",
" y.append( ps.average_result(\"sum\")[0] )\n",
"plt.plot(x,y, 'ro')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Deleting Items\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5\n",
"4\n",
"True\n",
"False\n"
]
}
],
"source": [
"# call discard method to delete an item\n",
"\n",
"sim = oacis.Simulator.where(name=\"sample_simulator\").first()\n",
"ps = sim.find_parameter_set( {\"p1\":1.0, \"p2\": 2.0, \"p3\": 3.0} )\n",
"print( len( ps.runs() ) )\n",
"run = ps.runs()[0] # Get the first run\n",
"run.discard() # Delete it\n",
"print( len(ps.runs()) ) # => 4. The number of runs is decreased by 1.\n",
"\n",
"\n",
"# deleting all ParameterSet whose p2 is larger than 10.0\n",
"print( sim.parameter_sets().gt( {\"v.p2\": 10.0} ).count() > 0 ) # => true\n",
"for ps in sim.parameter_sets().gt( {\"v.p2\": 10.0} ):\n",
" ps.discard()\n",
"print( sim.parameter_sets().gt( {\"v.p2\": 10.0} ).count() > 0 ) # => false\n",
"# Visit the page of OACIS and verify that ParameterSets have been deleted."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [conda env:ml]",
"language": "python",
"name": "conda-env-ml-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment