单机上使用dask

默认的Dask调度程序通过使用线程或进程在一台机器上提供并行性。这是Dask使用的默认选项,因为它不需要设置。使用此调度程序不需要做任何选择或设置任何东西。但是,您可以在线程和进程之间进行选择:

  1. 多线程:在同一个进程中使用多个线程。这个选项适用于释放GIL的数字代码(NumPyPandaScikit-LearnNumba),因为数据在线程间共享。dask默认支持的调度程序有 dask.arraydask.dataframe, and dask.delayed
  2. 多进程: 将数据发送到单独的进程进行处理。当操作纯Python对象(比如字符串)或类json的字典数据(这些数据保存在GIL)时,多进程是很好选择,但是当操作数值数据(比如Pandas DataFramesNumPy arrays)时就不太好了。使用流程可以避免GIL问题,但也会导致大量的进程间通信,这可能比较慢。dask默认 dask.bag。它有时也使用 dask.dataframe

注意:当处理计算密集型任务时,dask.distributed 调度任务通常是更好的选择。具体请看 dask.distributed on a single machine

  1. 单线程: 在单线程中执行计算。此选项不提供并行性,但在调试或分析时非常有用。在许多情况下,如果您想更好地理解正在发生的事情,将并行执行转换为顺序执行可能是一个方便的选择

如何选择?

您可以通过设置 scheduler= 关键字,指定以下三个值中的一个来选择这些选项:

  • "threads": 在本地进程中使用线程池
  • "processes": 使用进程池在拆分的进程之间
  • "single-threaded": 在当前线程中使用for循环

你可以用以下任何一种方式指定这些选项:

  • 当调用 .compute()

x.compute(scheduler='threads')

  • 使用上下文管理器

with dask.config.set(scheduler='threads'):

    x.compute()

    y.compute()

  • 全局设置

dask.config.set(scheduler='threads')

使用分布式调度器

Dask最新的分布式调度程序也可以在一台机器上很好地工作,并提供了更多的功能和诊断。更多信息请参见此页。具体详细内容在this page 

 

以下是一个单机 RabbitMQ 的示例配置文件 (`rabbitmq.conf`) 内容,你可以根据自己的需求进行相应的修改: ```plaintext # RabbitMQ configuration file # 设置 RabbitMQ 节点名称 node_name = rabbit@localhost # 设置 RabbitMQ 监听地址和端口 listeners.tcp.default = 5672 # 设置 RabbitMQ 的日志文件路径和级别 log.file.level = info log.file.dir = /var/log/rabbitmq log.file.name = rabbitmq.log # 设置 RabbitMQ 的数据目录 RABBITMQ_BASE = /var/lib/rabbitmq # 设置 RabbitMQ 的内存使用限制 vm_memory_high_watermark.relative = 0.4 # 设置 RabbitMQ 的磁盘使用限制 disk_free_limit.relative = 1.0 # 设置 RabbitMQ 的用户访问控制 default_user = guest default_pass = guest # 开启 RabbitMQ 管理插件 management.load_definitions = /etc/rabbitmq/management.json ``` 上述配置文件中,你可以根据需要进行如下修改: - `node_name`:设置 RabbitMQ 节点的名称,默认为 `rabbit@localhost`。 - `listeners.tcp.default`:设置 RabbitMQ 监听的 TCP 端口,默认为 `5672`。 - `log.file.level`、`log.file.dir`、`log.file.name`:设置 RabbitMQ 的日志文件级别、日志目录和日志文件名。 - `RABBITMQ_BASE`:设置 RabbitMQ 的数据目录,默认为 `/var/lib/rabbitmq`。 - `vm_memory_high_watermark.relative`:设置 RabbitMQ 的内存使用高水位线,以相对比例表示,默认为 `0.4`。 - `disk_free_limit.relative`:设置 RabbitMQ 的磁盘使用限制,以相对比例表示,默认为 `1.0`(不限制)。 - `default_user`、`default_pass`:设置 RabbitMQ 的默认访问用户名和密码,默认为 `guest:guest`。 - `management.load_definitions`:设置 RabbitMQ 管理插件加载的定义文件路径,默认为 `/etc/rabbitmq/management.json`。 请注意,这只是一个示例配置文件,实际使用时需要根据你的环境和需求进行适当调整。你可以根据 RabbitMQ 的官方文档查找更多配置选项和详细说明。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值