{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Julia Version 0.6.1\n", "Commit 0d7248e2ff* (2017-10-24 22:15 UTC)\n", "Platform Info:\n", " OS: Windows (x86_64-w64-mingw32)\n", " CPU: Intel(R) Core(TM) i3-3240 CPU @ 3.40GHz\n", " WORD_SIZE: 64\n", " BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Sandybridge)\n", " LAPACK: libopenblas64_\n", " LIBM: libopenlibm\n", " LLVM: libLLVM-3.9.1 (ORCJIT, ivybridge)\n" ] } ], "source": [ "versioninfo()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Python 3.6.0 :: Anaconda 4.3.0 (64-bit)\r\n" ] } ], "source": [ "run(`python --version`)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "v8.9.4\r\n" ] } ], "source": [ "run(`node --version`)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nprocs()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "elapsed time: 0.888894725 seconds\n" ] }, { "data": { "text/plain": [ "0.888894725" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tic()\n", "run(`julia ./julia/lorenz.200M.jl`)\n", "toc()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "elapsed time: 0.571528617 seconds\n" ] }, { "data": { "text/plain": [ "0.571528617" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tic()\n", "run(`python ./Python/lorenz.swig.200M.py`)\n", "toc()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "elapsed time: 0.46230484 seconds\n" ] }, { "data": { "text/plain": [ "0.46230484" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tic()\n", "run(`node ./JS/lorenz.20M.js`)\n", "toc()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "([0.0, 0.1, 0.189, 0.270808, 0.348532, 0.424755, 0.501673, 0.581205, 0.665079, 0.754902 … -8.50481, -8.26483, -8.02668, -7.79317, -7.56684, -7.34996, -7.14454, -6.95227, -6.77459, -6.61264], [1.0, 0.99, 1.00708, 1.04805, 1.11076, 1.19394, 1.29699, 1.41994, 1.56331, 1.72809 … -6.10495, -5.88341, -5.69158, -5.52984, -5.39807, -5.29571, -5.22187, -5.17543, -5.15512, -5.1596], [1.05, 1.022, 0.995737, 0.971087, 0.94803, 0.92662, 0.906982, 0.889302, 0.87384, 0.860935 … 29.887, 29.6092, 29.3059, 28.9813, 28.6394, 28.2841, 27.9191, 27.5477, 27.1729, 26.7975])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function lorenz()\n", " dt = 0.01\n", " n = 20000000\n", "\n", " a = 10.\n", " b = 28.\n", " c = 8/3\n", "\n", " x = zeros(n)\n", " y = zeros(n)\n", " z = zeros(n)\n", "\n", " x[1] = 0\n", " y[1] = 1.\n", " z[1] = 1.05\n", "\n", " for i = 1:n-1\n", " x[i+1] = x[i] + dt * (- a * x[i] + a * y[i])\n", " y[i+1] = y[i] + dt * (- x[i] * z[i] + b * x[i] - y[i])\n", " z[i+1] = z[i] + dt * ( x[i] * y[i] - c * z[i] )\n", " end\n", " return x,y,z\n", "end\n", "gx,gy,gz = lorenz()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "elapsed time: 0.400894595 seconds\n" ] }, { "data": { "text/plain": [ "0.400894595" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tic()\n", "gx,gy,gz = lorenz()\n", "toc()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "using PyCall\n", "unshift!(PyVector(pyimport(\"sys\")[\"path\"]), \"\")\n", "@pyimport _SwigMod as SwigMod" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "elapsed time: 0.825153813 seconds\n" ] }, { "data": { "text/plain": [ "0.825153813" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tic()\n", "dt = 0.01\n", "n = 20000000\n", "\n", "a = 10.\n", "b = 28.\n", "c = 8/3\n", "\n", "x = zeros(n)\n", "y = zeros(n)\n", "z = zeros(n)\n", "\n", "x[1] = 0\n", "y[1] = 1.\n", "z[1] = 1.05\n", "\n", "SwigMod.Swig_Lorenz(x, y, z, a, b, c, dt, n)\n", "toc()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "elapsed time: 0.508946548 seconds\n" ] }, { "data": { "text/plain": [ "0.508946548" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tic()\n", "dt = 0.01\n", "n = 20000000\n", "\n", "a = 10.\n", "b = 28.\n", "c = 8/3\n", "\n", "x = zeros(n)\n", "y = zeros(n)\n", "z = zeros(n)\n", "\n", "x[1] = 0\n", "y[1] = 1.\n", "z[1] = 1.05\n", "\n", "SwigMod.Swig_Lorenz(x, y, z, a, b, c, dt, n)\n", "toc()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Julia 0.6.1", "language": "julia", "name": "julia-0.6" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "0.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }