博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python dask_使用Dask在Python中进行并行计算
阅读量:2523 次
发布时间:2019-05-11

本文共 1897 字,大约阅读时间需要 6 分钟。

python dask

关于Python性能的一个常见抱怨是 (GIL)。 由于使用GIL,一次只能有一个线程可以执行Python字节代码。 结果,即使在现代的多核计算机上,使用线程也不会加快计算速度。

库会将计算扩展到多个内核,甚至扩展到多台机器。 有些设置在数千台机器上配置Dask,每台机器都有多个内核。 尽管存在缩放限制,但不容易达到。

虽然Dask有许多内置的数组运算,但作为一个非内置的例子,我们可以计算 :

import numpy     
import dask
from dask
import
array
as darray
arr
= dask.
from_array
( numpy.
array
( my_data
)
, chunks
=
(
1000
,
)
)
mean
= darray.
mean
(
)
stddev
= darray.
std
( arr
)
unnormalized_moment
= darry.
mean
( arr * arr * arr
)
## See formula in wikipedia:
skewness
=
(
( unnormalized_moment -
(
3 * mean * stddev **
2
) - mean **
3
) /
            stddev **
3
)

请注意,每个操作将根据需要使用尽可能多的内核。 即使在计算数十亿个元素时,这也将在所有内核之间并行化。

当然,并非总是可以通过库将我们的操作并行化。 有时我们需要自己实现并行性。

为此,Dask具有“延迟”功能:

import dask     
def is_palindrome
( s
) :
   
return s
== s
[ ::-
1
]
palindromes
=
[ dask.
delayed
( is_palindrome
)
( s
)
for s
in string_list
]
total
= dask.
delayed
(
sum
)
( palindromes
)
result
= total.
compute
(
)

这将计算字符串是否并行为回文,并返回回文数。

虽然Dask是为数据科学家创建的,但它绝不仅限于数据科学。 每当我们需要在Python中并行化任务时,我们都可以使用Dask-GIL或不使用GIL。

翻译自:

python dask

转载地址:http://yxbzd.baihongyu.com/

你可能感兴趣的文章
电源模块的PCB设计
查看>>
光猫与普通的家用猫
查看>>
Asp.Net 构架(Http Handler 介绍) - Part.2
查看>>
6.11 spring框架
查看>>
Python--eval()函数
查看>>
【转载】Linux下的crontab定时执行任务命令
查看>>
STM32 HAL库的定时器中断回调函数跟串口中断回调函数
查看>>
vs2010找不到ado.net 实体数据模型解决办法
查看>>
(转)深入理解javascript连续赋值表达式
查看>>
用户场景分析
查看>>
MySQL创建数据库及用户
查看>>
Springboot静态页面放在static路径下还是访问不到
查看>>
centos7 重启网卡失败
查看>>
springboot(一)注解
查看>>
07 Mybatis的多表查询1----1对多和多对1
查看>>
debian和ubuntu的sh dash bash
查看>>
java9-8 局部内部类
查看>>
数据库分页
查看>>
Centos6.8源码编译安装PHP7
查看>>
012 debug调试工具的指令
查看>>