タグ

2016年8月10日のブックマーク (7件)

  • NumPyとCythonを組み合わせると爆速! - Kesinの知見置き場

    前回の記事の最後にcythonとnumpyを組み合わせても速くならなかったと書いてしまったのですが、@frontier45 さんから公式のチュートリアルをちゃんと読みましょう。と教えていただいたので、自分の勉強がてらブログにも書いておきます。 使用するコードは何のひねりもなく公式のチュートリアルから丸パクリです。 注意:以下のベンチマークはMacOS 10.7.3 MacBook Core2 Duo 2.26GHzでPythonとC/C++のコンパイラはMac標準のPython2.7.1, llvm-gccを使用しています。 Python/Cythonはipythonのtimeitを利用して実行時間を測定しています。 なお、以下の記録はあくまで私の環境、私の実装での記録なので比較の結果は正しいというものではないです。公式のチュートリアルでも実行時間が書かれていますので、そちらの方もご覧下さ

    NumPyとCythonを組み合わせると爆速! - Kesinの知見置き場
  • Python の内包表記の使い方まとめ

    Python の内包表記についてまとめました。 内包表記とは? 内包表記とは、リストや辞書などの iterable オブジェクト( for ループで回せるオブジェクト)のループ処理をかんたん・シンプルに記述できる記法です。 たとえば、 1 から 5 までの数値を 2 乗した値を持つリストを作りたい場合は次のような式を書くことができます。 通常の for ループと同じ for element in collection というブロックを書いて、その前に各要素の値を書いて、 [] で囲みます。この書き方が「内包表記」です。 ちなみに、「内包」は英語では「 comprehension 」と言います。また、「内包」の逆の概念は「外延」( extension )と言うそうです。内包と外延は数学の集合論における表現方法のようです。 このあたりの概念について詳しくは Wikipedia などが参考になり

    Python の内包表記の使い方まとめ
  • マルチプロセッシング(multiprocessing) - Python | Welcome to underground

    MultiprocessingとMultithreading? ver2.6から追加された multiprocessingモジュールを使って並列処理させる. threadingを使う方法もあるが,クラス継承しないと行けないとか ちょっと遅いとか上手くCPU使えてないとかちょっと不満があるので,multiprocessingを使って話をする. これはthreadingと似たようなAPIを提供するのだが,GILを効率的に回避する.(theadではなくsubprocessを使う) 何はともあれサンプルを示す.単純にカウントダウンするという面白みもなんともないもの. 1Gをカウントダウンする.この場合4スレッドに分散させるので250Mをカウントしていることになるが…. threading01.py import threading import time def countDown(n): whi

  • pythonの並列計算(CPUの数だけ並列させる)

    python使いなのですが、今まで並列計算を必要としていなかったので、この手の知識が0でした。しかし、必要に迫られたので、勉強してみました。 まず、一番手っ取り早く並列計算できそうなサンプルコード。 # -*- coding: utf-8 -*- from multiprocessing import Pool def fuga(x): # 並列実行したい関数 return x*x def hoge(): p = Pool(8) # 8スレッドで実行 print p.map(fuga, range(10)) # fugaに0,1,..のそれぞれを与えて並列演算 if __name__ == "__main__": hoge() http://d.hatena.ne.jp/halhorn/20100904/1283612722 Poolという機能を使うと、回すスレッド数を指定するだけで、py

  • Python threading 処理で高速化 - 雑食性雑感雑記

    概要 Python のモジュール「Threading」を使って並列化処理を実装してみる。 逐次処理版と速度比較してみる。 情報 Python threading threading ― 高水準のスレッドインタフェース サンプル サンプル概要 2つの処理 A、B を順次動かす。 (処理A) 1行 ~ 10行のCSVファイルを作成。1行に (x, y, r)。 (処理B) CSVファイルを読み込み、(x, y, r) の円を行数分描いた画像を作成。 逐次処理版 01.py # -*- coding: utf-8 -*- import csv import Image import ImageDraw import os import random as rnd import sys DEFAULT_TEXT_DIR = "./texts" DEFAULT_IMAGE_DIR = "./imag

    Python threading 処理で高速化 - 雑食性雑感雑記
    rinn_hy_0038
    rinn_hy_0038 2016/08/10
    “threading”
  • Pythonを高速化するCythonを使ってみた - Kesinの知見置き場

    突然ですが私はPythonが好きです。でもPythonは遅いです。 何が遅いかというと、致命的なことに四則演算が遅いです。でも他の動的型付け言語でスクリプト言語と呼ばれるPerl, Ruby, Javascript も C, Javaのようなコンパイルを行う静的型付け言語に比べれば圧倒的に遅いです(近年ではJavascriptのように著しく進歩した言語もあるので必ずしもそうだとは言えませんが)。 スクリプト言語が遅い原因の一つは、変数の型が指定されていないので型のチェックを毎回行う必要があるからです。この特性があるおかげ自動的に型を変換してオーバーフローを防いでくれるというメリットもあるのですが、どうしても静的型付け言語よりは速度を出すことができません。 ならPythonのコードに型指定を加えてコンパイルしちゃえばいいじゃん!というのがCythonです。正確にはPythonライクな文法で書

    Pythonを高速化するCythonを使ってみた - Kesinの知見置き場
  • 初めてEMR(Amazon Elastic MapReduce)を使う人が読むページ - scramble cadenza

    イントロ 仕事EMR を触っていて知見が溜まってきた気がするので、output していきます。 今後記事を連載する予定。 この記事では EMR にまつわる巨大な背景を説明します。 個別に検索すればもっと詳しいページはゴマンとあります。 ただそれらが EMR とどう関係しているのか、というのはあまり見かけなかったので書いてみました。 あ、コード一行も出てきません。 目次 EMR って何? 全体像 構成 EMR を起動するとどうなる? 気になる一回あたりの料金は... EMR の長所短所 長所 短所 仕事で使った時 Hadoop って何? 構成 HDFS Hadoop ツール層 EMR って何? Amazon Elastic MapReduce の略称 公式サイト AWSの内部で Hadoop を動かせる環境を提供してくれるサービスのこと 全体像 こんな感じ 出典元: What is Am

    初めてEMR(Amazon Elastic MapReduce)を使う人が読むページ - scramble cadenza