今回は、このサイトのrayのtutorialをやる。rayはコードをパラレルで実行するモジュールらしく、これを使うと処理を高速化できるようだ。
スポンサーリンク
環境設定¶
!mkdir ray
cd ray
チュートリアルサイトをgitクローンする。
!git clone https://github.com/ray-project/tutorial.git
チュートリアルフォルダに移動する。
cd tutorial
スポンサーリンク
Exercise 1 – Simple Data Parallel Example¶
最初にエクササイズに必要なモジュールをインポートする。
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import ray
import time
肝心のrayがインストールされていないのでインストールする。
!pip3 install ray
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import ray
import time
rayをイニシャライズする。
ray.init(num_cpus=12, ignore_reinit_error=True)
下の遅いコードをrayを使って高速化する。
# This function is a proxy for a more interesting and computationally
# intensive function.
def slow_function(i):
time.sleep(1)
return i
# Sleep a little to improve the accuracy of the timing measurements below.
# We do this because workers may still be starting up in the background.
time.sleep(2.0)
start_time = time.time()
results = [slow_function(i) for i in range(4)]
end_time = time.time()
duration = end_time - start_time
print('The results are {}. This took {} seconds. Run the next cell to see '
'if the exercise was done correctly.'.format(results, duration))
@ray.remote
def f(i):
time.sleep(1)
return i
# Sleep a little to improve the accuracy of the timing measurements below.
# We do this because workers may still be starting up in the background.
time.sleep(2.0)
start_time = time.time()
results = ray.get([f.remote(i) for i in range(4)])
end_time = time.time()
duration = end_time - start_time
print('The results are {}. This took {} seconds. Run the next cell to see '
'if the exercise was done correctly.'.format(results, duration))
assert results == [0, 1, 2, 3], 'Did you remember to call ray.get?'
assert duration < 1.1, ('The loop took {} seconds. This is too slow.'
.format(duration))
assert duration > 1, ('The loop took {} seconds. This is too fast.'
.format(duration))
print('Success! The example took {} seconds.'.format(duration))
とりあえずはこのサイトを参考にしてエクササイズをするといいらしい。
スポンサーリンク
スポンサーリンク