{ "metadata": { "name": "ipythonparallel" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "from IPython.parallel import Client\n", "rc = Client()\n", "# create the balanced view object\n", "lview = rc.load_balanced_view()" ], "language": "python", "metadata": { "slideshow": { "slide_start": false } }, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "def process_job(filename):\n", " # to avoid importing functions better\n", " # define the function in a module and import it\n", " from time import sleep\n", " sleep(4)\n", " open(filename, 'w').close()\n", " return \"Done \" + filename" ], "language": "python", "metadata": { "slideshow": { "slide_start": false } }, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "!rm out/*.dat" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "process_job(\"out/prova.dat\")" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "filenames = [\"out/%d.dat\" % (i+10) for i in range(10)]\n", "print filenames" ], "language": "python", "metadata": { "slideshow": { "slide_start": false } }, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "# default returns immediately\n", "lview.map(process_job, filenames)" ], "language": "python", "metadata": { "slideshow": { "slide_start": false } }, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "# block=True, waits for jobs to complete and return results\n", "results = lview.map(process_job, filenames, block=True)" ], "language": "python", "metadata": { "slideshow": { "slide_start": false } }, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "results" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "# submit one job at a time\n", "for i in range(100, 110):\n", " lview.apply_async(process_job, \"out/%d.dat\" % i)" ], "language": "python", "metadata": { "slideshow": { "slide_start": false } }, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }