SlideShare a Scribd company logo
Cython
ことはじめ
IGGG Meetup 2015 Spring
擬音 @gion_U
お前誰よ
• 擬音 @gion_U
• 興味
• Python / Web開発
• バイトしてた
• やってること
• 研究室で MATLAB 使って線形代数こねこね
• (パターン認識・機械学習)
sucks
>> A
A =
1 2 3
4 5 6
7 8 9
>> sum(A)
ans =
12 15 18
>> sum(A, 1)
ans =
12 15 18
>> sum(A, 2)
ans =
6
15
24
>> A
A =
1 2 3
4 5 6
7 8 9
>> sum(A)
ans =
12 15 18
>> sum(A, 1)
ans =
12 15 18
>> sum(A, 2)
ans =
6
15
24
b =
1 2 3
>> A
A =
1 2 3
4 5 6
7 8 9
>> sum(A)
ans =
12 15 18
>> sum(A, 1)
ans =
12 15 18
>> sum(A, 2)
ans =
6
15
24
b =
1 2 3
>> sum(b)
ans =
6
>> A
A =
1 2 3
4 5 6
7 8 9
>> sum(A)
ans =
12 15 18
>> sum(A, 1)
ans =
12 15 18
>> sum(A, 2)
ans =
6
15
24
b =
1 2 3
>> sum(b)
ans =
6
I 💖
スクリプト言語なので、
どうしても

コンパイラ言語より遅い
I 💔
[Cython] is a programming
language that makes
writing C extensions for the
Python language as easy as
Python itself.
http://cython.org/docs/current/src/quickstart/overview.html
http://cython.org/docs/current/src/quickstart/overview.html
Python書くくらいの

気軽なノリで

C 拡張が書ける言語だよ!
特徴
• “Pythonic”
• Python コードに型情報付けた感じ
• Python 向け C 拡張ライブラリとしてビルドで
きる他に、Cython コードを実行形式バイナリ
としてビルドすることも可能
• 変数の型宣言(しなくてもよい)
• Python の型も使える
• Python っぽいコード
def newton(double init):
cdef list result = []
cdef double current = init
cdef double past = 0
while True:
past = current
current = (current + (7 / current)) / 2
if abs(current - past) < 1e-10:
break
result.append(current)
return result
if __name__ == '__main__':
print(newton(3))
CPython から使う
1. pip install cython
2. Cython コードを .pyx として保存
3. import pyximport

pyximport.install()
4. import <module_name>
5. コンパイルされる。エラーが発生しなければ成功
実行形式バイナリの生成
• 前ページの Cython コードから

次のようにして生成
% cython newton_pyx.pyx --embed
% cc -I${PYTHON_INCLUDE_DIR} -L{PYTHON_LIBRARY_DIR} 
-lpython3.4 newton_pyx.c
% ./a.out
[2.666666666666667, 2.645833333333333, 2.6457513123359577,
2.6457513110645907]
ここではやってないけれど
• 外部のソースの関数なども extern で

持ち込める
• よく使われそうな定義は予め用意されている
• CPython, C, C++, NumPy, POSIX
※ C++ コードを生成できる
cdef extern from "myfuncs.h"
double func(double x, int y)
from libc.math cimport sin
速度計測
• ハードウェア環境
• MacBook Pro Retina 13” (Mid 2013)
• Core i5, 16G RAM
• ソフトウェア環境
• Mac OS X 10.10
• Python 3.4.3 (from Homebrew [bottle])
• Cython 0.22
• Clang 3.5.1 (tags/RELEASE_351/final)
• 4 つのモジュールを作成
• newton
• 素の Python, 漸近のようすを表すリストを返す
• newton2
• 素の Python, 漸近の結果を返す
• newton_pyx
• newton2_pyx
• 上記の 2 モジュールの Cython 実装
速度計測
(ニュートン法による関数近似)
• timeit.repeat(repeat=10, ...)

の最小値
• 100 万回の実行を

10 セット行ったときの最小時間
速度計測
(ニュートン法による関数近似)
結果
結果
• Python
• newton - 2.36 sec
• newton2 - 1.83 sec
結果
• Python
• newton - 2.36 sec
• newton2 - 1.83 sec
• Cython
• newton_pyx - 0.27 sec
• newton2_pyx - 0.17 sec
Cython つよい
ところで
Python の関数
• 呼び出しに伴うコストが大きい
• 関数もオブジェクト
• ルックアップ、引数渡し、……
• ループ中で呼んだり、

再帰したりで遅くなりがち
Cython の関数定義
• Cython では、Python 関数だけでなく

C 関数も定義できる(Pythonic に!)
• C 関数は Python コードから

直接呼びだせないことに注意
• cdef キーワードで定義
• cpdef キーワードを用いると、

Python からは Python 関数を、

C からは C 関数を呼んでくれる(はず)
cpdef int tarai(int x, int y, int z):
if x <= y:
return y
else:
return tarai(
tarai(x-1, y, z),
tarai(y-1, z, x),
tarai(z-1, x, y)
)
たらい回し関数(竹内関数)
• 再帰関数
• 計算対象の数が大きくなりすぎない
• 再帰のネストが深くなりすぎない
• 関数呼び出しのベンチマークに使える
http://ja.wikipedia.org/wiki/竹内関数
検証
(たらい回し関数の呼び出し)
• 3 通りの方法で関数呼び出しの速度を検証
1. Python コードをそのまま実行
2. Cython コード(Python 関数版)を実行
3. Cython コード(C 関数版)を実行
検証
(たらい回し関数の呼び出し)
• timeit.repeat(number=1) の最小値
• 『1回実行』を 10 セット行ったときの

最小時間
• すごい時間がかかったので
結果
結果
• Python - 38.8 sec
結果
• Python - 38.8 sec
• Cython(Python func) - 21.2 sec
結果
• Python - 38.8 sec
• Cython(Python func) - 21.2 sec
• Cython(C func) - 0.558 sec (!)
• 69 times faster than Python
• 37 times faster than Cython(Python func)
まとめ
• Pythonic なコードから C/C++ ソースを

生成する Cython
• 気軽に C 拡張を書ける
• 型指定は積極的に
• 関数は極力 C 関数として定義する
• 数値演算などに威力を発揮しそう

More Related Content

What's hot

数値計算のための Python + FPGA
数値計算のための Python + FPGA数値計算のための Python + FPGA
数値計算のための Python + FPGA
ryos36
 
Polyphony IO まとめ
Polyphony IO まとめPolyphony IO まとめ
Polyphony IO まとめ
ryos36
 
言語処理系入門€10
言語処理系入門€10言語処理系入門€10
言語処理系入門€10
Kenta Hattori
 
Tensorflow dynamically loadable XLA plugin ソースコード解析
Tensorflow  dynamically loadable XLA plugin ソースコード解析Tensorflow  dynamically loadable XLA plugin ソースコード解析
Tensorflow dynamically loadable XLA plugin ソースコード解析
Mr. Vengineer
 
Boost tour 1.60.0 merge
Boost tour 1.60.0 mergeBoost tour 1.60.0 merge
Boost tour 1.60.0 merge
Akira Takahashi
 
Emcjp item33,34
Emcjp item33,34Emcjp item33,34
Emcjp item33,34
MITSUNARI Shigeo
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
Tomohiro Namba
 
Emcjp item21
Emcjp item21Emcjp item21
Emcjp item21
MITSUNARI Shigeo
 
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプC++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
Kohsuke Yuasa
 
研究生のためのC++ no.7
研究生のためのC++ no.7研究生のためのC++ no.7
研究生のためのC++ no.7
Tomohiro Namba
 
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?
Mr. Vengineer
 
Rcppのすすめ
RcppのすすめRcppのすすめ
Rcppのすすめ
Masaki Tsuda
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
Etsuji Nakai
 
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
kiki utagawa
 
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。Yuichi Sakuraba
 
(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する
blackenedgold
 

What's hot (20)

boost tour 1.48.0 all
boost tour 1.48.0 allboost tour 1.48.0 all
boost tour 1.48.0 all
 
数値計算のための Python + FPGA
数値計算のための Python + FPGA数値計算のための Python + FPGA
数値計算のための Python + FPGA
 
Polyphony IO まとめ
Polyphony IO まとめPolyphony IO まとめ
Polyphony IO まとめ
 
Boost Tour 1.48.0 diff
Boost Tour 1.48.0 diffBoost Tour 1.48.0 diff
Boost Tour 1.48.0 diff
 
言語処理系入門€10
言語処理系入門€10言語処理系入門€10
言語処理系入門€10
 
C++14 Overview
C++14 OverviewC++14 Overview
C++14 Overview
 
Tensorflow dynamically loadable XLA plugin ソースコード解析
Tensorflow  dynamically loadable XLA plugin ソースコード解析Tensorflow  dynamically loadable XLA plugin ソースコード解析
Tensorflow dynamically loadable XLA plugin ソースコード解析
 
Boost tour 1.60.0 merge
Boost tour 1.60.0 mergeBoost tour 1.60.0 merge
Boost tour 1.60.0 merge
 
Emcjp item33,34
Emcjp item33,34Emcjp item33,34
Emcjp item33,34
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
 
Emcjp item21
Emcjp item21Emcjp item21
Emcjp item21
 
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプC++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
 
研究生のためのC++ no.7
研究生のためのC++ no.7研究生のためのC++ no.7
研究生のためのC++ no.7
 
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?
 
Rcppのすすめ
RcppのすすめRcppのすすめ
Rcppのすすめ
 
Boost Tour 1.50.0 All
Boost Tour 1.50.0 AllBoost Tour 1.50.0 All
Boost Tour 1.50.0 All
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
 
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
 
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
 
(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する
 

Viewers also liked

なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?
Aki Ariga
 
ほんとはこわくない Gentoo Linux
ほんとはこわくない Gentoo Linuxほんとはこわくない Gentoo Linux
ほんとはこわくない Gentoo Linux
gion_XY
 
Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Pythonによる機械学習の最前線
Pythonによる機械学習の最前線
Kimikazu Kato
 
Random Forests
Random ForestsRandom Forests
Random Forests
Hironobu Fujiyoshi
 
Introduction to Chainer and CuPy
Introduction to Chainer and CuPyIntroduction to Chainer and CuPy
Introduction to Chainer and CuPy
Kenta Oono
 
大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法
Shunji Umetani
 
白い陽気なやつとPythonでたわむれる
白い陽気なやつとPythonでたわむれる白い陽気なやつとPythonでたわむれる
白い陽気なやつとPythonでたわむれる
Ken'ichi Matsui
 
SIerからWebエンジニアへの失敗しない転職方法
SIerからWebエンジニアへの失敗しない転職方法SIerからWebエンジニアへの失敗しない転職方法
SIerからWebエンジニアへの失敗しない転職方法
Yusuke Kon
 
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Shinya Takamaeda-Y
 
深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開
Seiya Tokui
 
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Yasutomo Kawanishi
 
Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015
Ryosuke Okuta
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
Yusuke Kon
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tatsuya Tojima
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
Koichi Hamada
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 

Viewers also liked (16)

なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?
 
ほんとはこわくない Gentoo Linux
ほんとはこわくない Gentoo Linuxほんとはこわくない Gentoo Linux
ほんとはこわくない Gentoo Linux
 
Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Pythonによる機械学習の最前線
Pythonによる機械学習の最前線
 
Random Forests
Random ForestsRandom Forests
Random Forests
 
Introduction to Chainer and CuPy
Introduction to Chainer and CuPyIntroduction to Chainer and CuPy
Introduction to Chainer and CuPy
 
大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法
 
白い陽気なやつとPythonでたわむれる
白い陽気なやつとPythonでたわむれる白い陽気なやつとPythonでたわむれる
白い陽気なやつとPythonでたわむれる
 
SIerからWebエンジニアへの失敗しない転職方法
SIerからWebエンジニアへの失敗しない転職方法SIerからWebエンジニアへの失敗しない転職方法
SIerからWebエンジニアへの失敗しない転職方法
 
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
 
深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開
 
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
 
Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 

Similar to Cython ことはじめ

Using PyFoam as library(第25回オープンCAE勉強会@関西)
Using PyFoam as library(第25回オープンCAE勉強会@関西)Using PyFoam as library(第25回オープンCAE勉強会@関西)
Using PyFoam as library(第25回オープンCAE勉強会@関西)TatsuyaKatayama
 
第2回 JavaScriptから始めるプログラミング2016
第2回 JavaScriptから始めるプログラミング2016第2回 JavaScriptから始めるプログラミング2016
第2回 JavaScriptから始めるプログラミング2016
kyoto university
 
Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由
Tetsurou Yano
 
Kamonを理解する
Kamonを理解するKamonを理解する
Kamonを理解する
Shuya Tsukamoto
 
X tapp lecture_20140226_tapioca
X tapp lecture_20140226_tapiocaX tapp lecture_20140226_tapioca
X tapp lecture_20140226_tapiocaxTAPP
 
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編Yosuke Onoue
 
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
Ryuuta Tsunashima
 
アプリケーション開発と分析のための Log Analytics
アプリケーション開発と分析のための Log Analytics アプリケーション開発と分析のための Log Analytics
アプリケーション開発と分析のための Log Analytics
kekekekenta
 
R -> Python
R -> PythonR -> Python
R -> Python
Kazufumi Ohkawa
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
Noboru Irieda
 
第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)
RCCSRENKEI
 
rpi_handson_2.5
rpi_handson_2.5rpi_handson_2.5
rpi_handson_2.5
teruyaono1
 
ジャパネットQB GPars
ジャパネットQB GParsジャパネットQB GPars
ジャパネットQB GParsTakahiro Sugiura
 
ji-2. 計算
ji-2. 計算ji-2. 計算
ji-2. 計算
kunihikokaneko1
 
各言語の k-means 比較
各言語の k-means 比較各言語の k-means 比較
各言語の k-means 比較
y-uti
 
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング   -GPGPUも- Pythonによる並列プログラミング   -GPGPUも-
Pythonによる並列プログラミング -GPGPUも- Yusaku Watanabe
 
GaucheでCGIプログラミング
GaucheでCGIプログラミングGaucheでCGIプログラミング
GaucheでCGIプログラミング
Kazuhiro Hishinuma
 
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件
yaegashi
 

Similar to Cython ことはじめ (20)

Using PyFoam as library(第25回オープンCAE勉強会@関西)
Using PyFoam as library(第25回オープンCAE勉強会@関西)Using PyFoam as library(第25回オープンCAE勉強会@関西)
Using PyFoam as library(第25回オープンCAE勉強会@関西)
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
第2回 JavaScriptから始めるプログラミング2016
第2回 JavaScriptから始めるプログラミング2016第2回 JavaScriptから始めるプログラミング2016
第2回 JavaScriptから始めるプログラミング2016
 
Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由
 
Kamonを理解する
Kamonを理解するKamonを理解する
Kamonを理解する
 
X tapp lecture_20140226_tapioca
X tapp lecture_20140226_tapiocaX tapp lecture_20140226_tapioca
X tapp lecture_20140226_tapioca
 
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
 
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
GPU-FPGA 協調計算を記述するためのプログラミング環境に関する研究(HPC169 No.10)
 
アプリケーション開発と分析のための Log Analytics
アプリケーション開発と分析のための Log Analytics アプリケーション開発と分析のための Log Analytics
アプリケーション開発と分析のための Log Analytics
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
R -> Python
R -> PythonR -> Python
R -> Python
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
 
第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)第11回 配信講義 計算科学技術特論B(2022)
第11回 配信講義 計算科学技術特論B(2022)
 
rpi_handson_2.5
rpi_handson_2.5rpi_handson_2.5
rpi_handson_2.5
 
ジャパネットQB GPars
ジャパネットQB GParsジャパネットQB GPars
ジャパネットQB GPars
 
ji-2. 計算
ji-2. 計算ji-2. 計算
ji-2. 計算
 
各言語の k-means 比較
各言語の k-means 比較各言語の k-means 比較
各言語の k-means 比較
 
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング   -GPGPUも- Pythonによる並列プログラミング   -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
 
GaucheでCGIプログラミング
GaucheでCGIプログラミングGaucheでCGIプログラミング
GaucheでCGIプログラミング
 
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件
 

Cython ことはじめ