Ray入门指南(2)----Ray API

本文深入介绍了Ray的API,包括在Python代码中的应用和命令行操作。主要内容涉及ray.init连接集群,ray.remote定义远程函数和actor,ray.get、ray.wait和ray.put等操作,以及ray命令行工具如ray start、ray stop等。
摘要由CSDN通过智能技术生成

Ray API

此篇主要介绍Ray的API。主要有两部分,一部分是ray再python代码中的应用;另一部分是ray在命令行中的应用。

ray.init(redis_address=None, num_cpus=None, num_gpus=None, resources=None,
		 object_store_memory=None, redis_max_memory=None, log_to_driver=True, 
		 node_ip_address=None, object_id_seed=None, local_mode=False, 
		 redirect_worker_output=None, redirect_output=None, ignore_reinit_error=False,
		 num_redis_shards=None, redis_max_clients=None, redis_password=None, 
		 plasma_directory=None, huge_pages=False, include_webui=False, 
		 driver_id=None, configure_logging=True, logging_level=20, 
		 logging_format='%(asctime)s\t%(levelname)s %(filename)s:%(lineno)s -- %(message)s', 
		 plasma_store_socket_name=None, raylet_socket_name=None, temp_dir=None,
		  load_code_from_local=False, _internal_config=None)

连接到现有的Ray集群,或者启动一个Ray集群并连接到它。

此方法处理两种情况。要么一个Ray集群已经存在,我们将这个驱动程序附加到它上面,要么启动所有与Ray集群相关的进程并附加到新启动的集群上。

要启动Ray和所有相关进程,请使用以下步骤:

ray.init()

要连接到现有的Ray集群,可以使用以下方法(替换为适当的地址):

ray.init(redis_address="123.45.67.89:6379")
**参数:**	
redis_address (str) – 要连接到的Redis服务器的地址。如果不提供此地址,则此命令将启动Redis、
					a global scheduler, a local scheduler, a plasma store, a plasma manager, 和 
					some workers.它还将在Python退出时终止这些进程。
num_cpus (int) – 用户希望配置所有本地调度程序的cpu数量。
num_gpus (int) – 用户希望配置所有本地调度程序的gpu数量。
resources – 将资源名称映射到可用资源数量的字典。(就是将资源映射到redis中)
object_store_memory – 用于启动对象存储的内存量(以字节为单位)。默认情况下,这个上限为20GB,但可以设置得更高。
redis_max_memory – 允许每个redis碎片使用的最大内存量(以字节为单位)。一旦超过这个限制,redis将开始LRU清除条目。
					这只适用于切分的redis表(任务、对象和概要表)。默认情况下,这是10GB的上限,但可以设置得更高。
log_to_driver (bool) – 如果为真,则所有节点上的所有工作进程的输出都将定向到driver。
node_ip_address (str) – 当前所在节点的IP地址。
object_id_seed (int) – 用于确定对象ID的生成。可以在同一作业的多个运行中使用相同的值,以便以一致的方式生成对象ID。
						但是,不同的作业不应该使用相同的ID。
local_mode (bool) – 如果代码在没有Ray的情况下连续执行,则为True。这对于调试非常有用。
ignore_reinit_error – 如果我们应该禁止第二次调用ray.init()时出现错误,则为True。
num_redis_shards – 除了主Redis碎片之外,还要启动的Redis碎片的数量。
redis_max_clients –设置最大客服端数量。
redis_password (str) – 防止没有密码的外部客户端连接到Redis(如果提供)。
plasma_directory – 将创建plasma内存映射文件的目录
huge_pages – 布尔标志,指示是否使用hugetlbfs支持启动对象存储。需要plasma_directory。
include_webui – 布尔标志,指示是否启动web UI,它显示Ray集群的状态。
driver_id –  driver的ID.
configure_logging – 如果允许这里的日志编码,则为真。否则,用户可能希望自己配置它。
logging_level –日志级别,默认为logging.info。.
logging_format – 日志格式,默认包含时间戳、文件名、行号和消息。看到ray_constants.py。
plasma_store_socket_name (str) – 如果提供,它将指定plasma存储使用的套接字名称。
raylet_socket_name (str) –如果提供,它将指定raylet进程使用的套接字路径。
temp_dir (str) –如果提供,它将为Ray进程指定根临时目录。
load_code_from_local – 是否应该从本地模块或从GCS加载代码。
_internal_config (str) – 用于覆盖RayConfig默认值的JSON配置。仅供测试之用。
Returns:	处理有关已启动进程的信息。
Raises:	Exception –如果传入不适当的参数组合,则会引发异常。

ray.is_initialized()
检查ray.init 是否已经调用。
返回:如果已经调用ray.init 返回true ,否则返回false。

ray.remote(*args, **kwargs)
定义一个远程函数或一个actor类。
这可以在没有参数的情况下定义远程函数或角色(actor),如下所示:

@ray.remote
def f():
    return 1

@ray.remote
class Foo(object):
    def method(self):
       
  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值