{ "metadata": { "name": "", "signature": "sha256:5cf490c36d247eade964d886a6f08267f8c30390a8f13ae4e023ae4909dedd87" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "A = np.array([[1,0,0],[0,1,0],[0,0,1]])\n", "B = np.array([[1,0,0],[0,1,0],[0,0,1]])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "np.dot(A,B)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "array([[1, 0, 0],\n", " [0, 1, 0],\n", " [0, 0, 1]])" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "np.inner(A,B)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ "array([[1, 0, 0],\n", " [0, 1, 0],\n", " [0, 0, 1]])" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "np.linalg.det(A)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "1.0" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "A[0][1]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "0" ] } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "working function\n", "===" ] }, { "cell_type": "code", "collapsed": false, "input": [ "c = np.array([[0,0,0],[0,0,0],[0,0,0]])\n", "for i in range(len(A)):\n", " for k in range(len(B)):\n", " val = 0\n", " for j in range(len(A[0])):\n", " val += A[i][j]*B[j][k]\n", " c[i][k] = val\n", " #print i, k, val\n", "#\n", "print c" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[[1 0 0]\n", " [0 1 0]\n", " [0 0 1]]\n" ] } ], "prompt_number": 43 }, { "cell_type": "code", "collapsed": false, "input": [ "def value(i,k,A,B):\n", " val = 0\n", " for j in range(len(A[i])):\n", " val += A[i][j]*B[j][k]\n", " return val" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "for i in range(len(A)):\n", " for k in range(len(B)):\n", " #print value(i,k,A,B)\n", " c[i][k] = value(i,k,A,B)\n", "print c" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[[1 0 0]\n", " [0 1 0]\n", " [0 0 1]]\n" ] } ], "prompt_number": 46 }, { "cell_type": "markdown", "metadata": {}, "source": [ "parallel multiplication\n", "==" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import multiprocessing as mp\n", "import random\n", "import string" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 47 }, { "cell_type": "code", "collapsed": false, "input": [ "pool = mp.Pool(processes=4)\n", "for i in range(len(A)):\n", " results = [pool.apply(value, args=(i,k,A,B,)) for k in range(len(B))]\n", " print(results)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[1, 0, 0]\n", "[0, 1, 0]\n", "[0, 0, 1]\n" ] } ], "prompt_number": 50 }, { "cell_type": "code", "collapsed": false, "input": [ "pool = mp.Pool(processes=4)\n", "for i in range(len(A)):\n", " results = [pool.apply_async(value, args=(i,k,A,B,)) for k in range(len(B))]\n", " output = [p.get() for p in results]\n", " print(output)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[1, 0, 0]\n", "[0, 1, 0]\n", "[0, 0, 1]\n" ] } ], "prompt_number": 51 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "testing\n", "===" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def prod(i,A,B):\n", " val =0\n", " for k in range(len(B[0])):\n", " for j in range(len(A[0])):\n", " val += A[i][j]*B[j][k]\n", " return val" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 30 }, { "cell_type": "code", "collapsed": false, "input": [ "for i in range(len(A[0])):\n", " print prod(i,A,B)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1\n", "1\n", "1\n" ] } ], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }