質問編集履歴
6
タイトルの変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Pythonの高速化
|
1
|
+
Pythonの高速化
|
body
CHANGED
File without changes
|
5
⑤CuPy の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -127,10 +127,10 @@
|
|
127
127
|
このエラーを解消する方法をご存じでしたら教えていただけないでしょうか。
|
128
128
|
|
129
129
|
**⑤CuPyを用いる**
|
130
|
-
CuPyというものを使って、GPUを搭載したコンピューターで計算を行うと高速化できる可能性がある、ということを知りました。
|
130
|
+
CuPyというものを使って、GPUを搭載したコンピューターで計算を行うと高速化できる可能性がある、ということを知りました。(自分のPCにはGPUは搭載されていません)
|
131
|
+
Google Colaboratoryを使うと、CuPyの性能を確認することができるそうです。以下のようなページを読んで、CuPyについて調べているところです。
|
132
|
+
[https://qiita.com/samacoba/items/d18e6cf09f544477aff4](https://qiita.com/samacoba/items/d18e6cf09f544477aff4)
|
131
133
|
|
132
|
-
コード1に対してCuPyを用いる方法をご存じでしたら教えていただけないでしょうか。
|
133
|
-
|
134
134
|
**⑥並列処理を行う**
|
135
135
|
複数のCPUがあるコンピュータでは、複数のCPUを用いることによって計算時間は短くなると思います。そこで並列処理について調べてみて、まずは以下のページを参考にしました。
|
136
136
|
|
4
④Cython の修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Pythonの高速化(解決済みですが、今後も様々な回答をお待ちして
|
1
|
+
Pythonの高速化(解決済みですが、今後も様々な回答をお待ちしています)
|
body
CHANGED
@@ -101,10 +101,31 @@
|
|
101
101
|
コード1に対してnumbaを用いる方法をご存じでしたら教えていただけないでしょうか。(→[hayataka2049](https://teratail.com/users/hayataka2049)さんの回答により解決しました)
|
102
102
|
|
103
103
|
**④Cythonを用いる**
|
104
|
-
Cythonというものを用いればPythonの高速化ができる、ということを知
|
104
|
+
Cythonというものを用いればPythonの高速化ができる、ということを知りました。そこで次のページを参考にしました。
|
105
|
+
[https://qiita.com/kenmatsu4/items/7c08a85e41741e95b9ba](https://qiita.com/kenmatsu4/items/7c08a85e41741e95b9ba)
|
105
106
|
|
107
|
+
まず
|
108
|
+
```ここに言語を入力
|
109
|
+
%load_ext Cython
|
110
|
+
```
|
111
|
+
を実行し、次に
|
112
|
+
```ここに言語を入力
|
106
|
-
|
113
|
+
%%cython -n test_cython_code
|
114
|
+
def fib(int n):
|
115
|
+
cdef int i
|
116
|
+
cdef double a=0.0, b=1.0
|
107
117
|
|
118
|
+
for i in range(n):
|
119
|
+
a, b = a+b, a
|
120
|
+
return a
|
121
|
+
```
|
122
|
+
を実行すると、
|
123
|
+
```ここに言語を入力
|
124
|
+
DistutilsPlatformError: Unable to find vcvarsall.bat
|
125
|
+
```
|
126
|
+
というエラーが出てしまいます。
|
127
|
+
このエラーを解消する方法をご存じでしたら教えていただけないでしょうか。
|
128
|
+
|
108
129
|
**⑤CuPyを用いる**
|
109
130
|
CuPyというものを使って、GPUを搭載したコンピューターで計算を行うと高速化できる可能性がある、ということを知りました。しかし具体的な実装方法が分かりません。
|
110
131
|
|
3
タイトルの変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Pythonの高速化
|
1
|
+
Pythonの高速化(解決済みですが、今後も様々な回答をお待ちしております)
|
body
CHANGED
File without changes
|
2
③numbaを用いる の解決
title
CHANGED
File without changes
|
body
CHANGED
@@ -98,7 +98,7 @@
|
|
98
98
|
@jit(nopython=True)
|
99
99
|
を付け加えたみたところ、エラーが表示され、計算が実行されませんでした。
|
100
100
|
|
101
|
-
コード1に対してnumbaを用いる方法をご存じでしたら教えていただけないでしょうか。
|
101
|
+
コード1に対してnumbaを用いる方法をご存じでしたら教えていただけないでしょうか。(→[hayataka2049](https://teratail.com/users/hayataka2049)さんの回答により解決しました)
|
102
102
|
|
103
103
|
**④Cythonを用いる**
|
104
104
|
Cythonというものを用いればPythonの高速化ができる、ということを知ったのですが、C言語の知識がないため、具体的な実装方法が分かりません。
|
1
誤字、リンクの修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
Aが与えられたとき、Bを得られるようなコードを書きました。しかし例えばm=n=20000だと、計算に40秒ほどかかってしまいます。この計算を数千回繰り返したいと考えておりますので、1回あたりの計算時間をより短くしたいと考えております。自分でもいくつかの方法を試しましたが、計算時間を短縮する有効な方法が分かりません。計算時間を短縮する方法について何かアドバイスを頂けたら幸いです。よろしくお願いいたします。
|
11
11
|
|
12
12
|
なお、k連続する1をkに置き換える方法については、
|
13
|
-
https://maspypy.com/numpy連続同一値の数え上げ-atcoder-abc-129-d
|
13
|
+
[https://maspypy.com/numpy連続同一値の数え上げ-atcoder-abc-129-d](https://maspypy.com/numpy連続同一値の数え上げ-atcoder-abc-129-d)
|
14
14
|
を参考にさせていただきました。
|
15
15
|
|
16
16
|
### 該当のソースコード
|
@@ -101,7 +101,7 @@
|
|
101
101
|
コード1に対してnumbaを用いる方法をご存じでしたら教えていただけないでしょうか。
|
102
102
|
|
103
103
|
**④Cythonを用いる**
|
104
|
-
Cythonというものを用いれば
|
104
|
+
Cythonというものを用いればPythonの高速化ができる、ということを知ったのですが、C言語の知識がないため、具体的な実装方法が分かりません。
|
105
105
|
|
106
106
|
コード1に対してCythonを用いる方法をご存じでしたら教えていただけないでしょうか。
|
107
107
|
|
@@ -113,7 +113,7 @@
|
|
113
113
|
**⑥並列処理を行う**
|
114
114
|
複数のCPUがあるコンピュータでは、複数のCPUを用いることによって計算時間は短くなると思います。そこで並列処理について調べてみて、まずは以下のページを参考にしました。
|
115
115
|
|
116
|
-
http://iatlex.com/python/parallel_first
|
116
|
+
[http://iatlex.com/python/parallel_first](http://iatlex.com/python/parallel_first)
|
117
117
|
|
118
118
|
このページ内の以下のコードを実行してみました。
|
119
119
|
```Python3
|