Newer
Older
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Adaptive"
]
},
{
"cell_type": "code",
"execution_count": null,
"outputs": [],
"source": [
"import holoviews as hv\n",
"from holoviews.streams import Stream, param\n",
"hv.notebook_extension('bokeh')"
]
},
{
"cell_type": "code",
"execution_count": null,
"outputs": [],
"source": [
"import numpy as np\n",
"from time import sleep\n",
"from random import randint\n",
"from functools import partial\n",
"import ipyparallel\n",
"import concurrent.futures\n",
"import importlib\n",
"importlib.reload(adalearner)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import asyncio\n",
"from ipykernel.eventloops import register_integration\n",
"\n",
"@register_integration('asyncio')\n",
"def loop_asyncio(kernel):\n",
" '''Start a kernel with asyncio event loop support.'''\n",
" loop = asyncio.get_event_loop()\n",
"\n",
" def kernel_handler():\n",
" loop.call_soon(kernel.do_one_iteration)\n",
" loop.call_later(kernel._poll_interval, kernel_handler)\n",
"\n",
" loop.call_soon(kernel_handler)\n",
" try:\n",
" if not loop.is_running():\n",
" loop.run_forever()\n",
" finally:\n",
" loop.run_until_complete(loop.shutdown_asyncgens())\n",
" loop.close()"
]
},
{
"cell_type": "code",
"execution_count": null,
"source": [
"%gui asyncio"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def func(x, wait=True):\n",
" \"\"\"Function with a sharp peak on a smooth background\"\"\"\n",
" import numpy as np\n",
" from time import sleep\n",
" x = np.asarray(x)\n",
" sleep(np.random.randint(1, 3))\n",
" return x + a**2/(a**2 + (x)**2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Parallel"
]
},
{
"cell_type": "code",
"execution_count": null,
"outputs": [],
"source": [
"learner = adalearner.Learner1D(func, client=ipyparallel.Client())\n",
"learner.add_point(-1, func(-1))\n",
"learner.add_point(1, func(1))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
]
},
{
"cell_type": "code",
"execution_count": null,
"outputs": [],
"source": [
"data_stream = Stream.define('data', data=param.ObjectSelector(default=dict()))\n",
"dm = hv.DynamicMap(learner.plot, streams=[data_stream()])\n",
"dm"
]
},
{
"cell_type": "code",
"execution_count": null,
"outputs": [],
"source": [
"async def monitor(delay=1):\n",
" while True:\n",
" dm.event(data=learner.data)\n",
" await asyncio.sleep(delay)\n",
" \n",
"monitor_task = learner.ioloop.create_task(monitor())"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"learner.task.print_stack()"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 1
}