静态公有成员函数 | 所有成员列表
kvikio::defaults 类参考

KvikIO 中使用的默认值的单例类。 更多...

#include <defaults.hpp>

静态公有成员函数

static CompatMode compat_mode ()
 返回 KvikIO 库是否正在兼容模式下运行。 更多...
 
static void set_compat_mode (CompatMode compat_mode)
 设置 kvikio::defaults::compat_mode() 的值。 更多...
 
static CompatMode infer_compat_mode_if_auto (CompatMode compat_mode) noexcept
 从系统运行时推断 AUTO 兼容模式。 更多...
 
static bool is_compat_mode_preferred (CompatMode compat_mode) noexcept
 给定请求的兼容模式,是否预期其会简化为 ON更多...
 
static bool is_compat_mode_preferred ()
 类默认值中的全局兼容模式是否预期为 ON更多...
 
static BS_thread_poolthread_pool ()
 获取默认线程池。 更多...
 
static unsigned int thread_pool_nthreads ()
 获取默认线程池中的线程数。 更多...
 
static void set_thread_pool_nthreads (unsigned int nthreads)
 设置默认线程池中的线程数。等待所有当前正在运行的任务完成,然后销毁池中的所有线程并使用新的线程数创建一个新的线程池。在池重置之前在队列中等待的任何任务将由新线程执行。 更多...
 
static std::size_t task_size ()
 获取用于并行 IO 操作的默认任务大小。 更多...
 
static void set_task_size (std::size_t nbytes)
 设置用于并行 IO 操作的默认任务大小。 更多...
 
static std::size_t gds_threshold ()
 获取默认 GDS 阈值,即使用 GDS 的最小大小(以字节为单位)。 更多...
 
static void set_gds_threshold (std::size_t nbytes)
 设置默认 GDS 阈值,即使用 GDS 的最小大小(以字节为单位)。 更多...
 
static std::size_t bounce_buffer_size ()
 获取用于在主机内存中暂存数据的 bounce buffer 的大小。 更多...
 
static void set_bounce_buffer_size (std::size_t nbytes)
 设置用于在主机内存中暂存数据的 bounce buffer 的大小。 更多...
 
static std::size_t http_max_attempts ()
 获取每次远程 IO 读取的最大尝试次数。 更多...
 
static void set_http_max_attempts (std::size_t attempts)
 设置每次远程 IO 读取的最大尝试次数。 更多...
 
static long http_timeout ()
 允许传输完成的最长时间,以秒为单位。 更多...
 
static void set_http_timeout (long timeout_seconds)
 重置 http 超时。 更多...
 
static std::vector< int > const & http_status_codes ()
 要重试的 HTTP 状态码列表。 更多...
 
static void set_http_status_codes (std::vector< int > status_codes)
 设置要重试的 HTTP 状态码列表。 更多...
 

详细描述

KvikIO 中使用的默认值的单例类。

定义于文件 defaults.hpp63 行。

成员函数文档

◆ bounce_buffer_size()

static std::size_t kvikio::defaults::bounce_buffer_size ( )
static

获取用于在主机内存中暂存数据的 bounce buffer 的大小。

使用 kvikio::default::set_bounce_buffer_size() 或通过设置 KVIKIO_BOUNCE_BUFFER_SIZE 环境变量来设置值。如果未设置,则值为 16 MiB。

返回值
bounce buffer 的大小,以字节为单位。

◆ compat_mode()

static CompatMode kvikio::defaults::compat_mode ( )
static

返回 KvikIO 库是否正在兼容模式下运行。

注意,这与 cuFile 中的兼容模式不同。也就是说,cuFile 可以在兼容模式下运行,而 KvikIO 不在。

当 KvikIO 在兼容模式下运行时,它不会加载 libcufile.so。相反,读写操作使用 POSIX 进行。

设置环境变量 KVIKIO_COMPAT_MODE 以启用/禁用兼容模式。默认情况下,在以下情况启用兼容模式:

  • 找不到 libcufile
  • 在 Windows Subsystem for Linux (WSL) 中运行时
  • /run/udev 不可读时,这通常发生在未通过 --volume /run/udev:/run/udev:ro 启动的 docker 镜像内部运行时
返回值
兼容模式。

◆ gds_threshold()

static std::size_t kvikio::defaults::gds_threshold ( )
static

获取默认 GDS 阈值,即使用 GDS 的最小大小(以字节为单位)。

为了提高小型 IO 的性能,.pread().pwrite() 实现了一个快捷方式,绕过线程池并直接使用 POSIX 后端。

使用 kvikio::default::set_gds_threshold() 或通过设置 KVIKIO_GDS_THRESHOLD 环境变量来设置默认值。如果未设置,默认值为 1 MiB。

返回值
默认 GDS 阈值大小,以字节为单位。

◆ http_max_attempts()

static std::size_t kvikio::defaults::http_max_attempts ( )
static

获取每次远程 IO 读取的最大尝试次数。

使用 kvikio::default::set_http_max_attempts() 或通过设置 KVIKIO_HTTP_MAX_ATTEMPTS 环境变量来设置值。如果未设置,则值为 3。

返回值
在引发错误之前尝试的最大远程 IO 读取次数。

◆ http_status_codes()

static std::vector<int> const& kvikio::defaults::http_status_codes ( )
static

要重试的 HTTP 状态码列表。

使用 kvikio::default::set_http_status_codes() 或通过设置 KVIKIO_HTTP_STATUS_CODES 环境变量来设置值。如果未设置,默认值为

  • 429
  • 500
  • 502
  • 503
  • 504
返回值
要重试的 HTTP 状态码列表。

◆ http_timeout()

static long kvikio::defaults::http_timeout ( )
static

允许传输完成的最长时间,以秒为单位。

使用 kvikio::default::set_http_timeout() 或通过设置 KVIKIO_HTTP_TIMEOUT 环境变量来设置值。如果未设置,则值为 60。

返回值
允许传输完成的最长时间。

◆ infer_compat_mode_if_auto()

static CompatMode kvikio::defaults::infer_compat_mode_if_auto ( CompatMode  compat_mode)
staticnoexcept

从系统运行时推断 AUTO 兼容模式。

如果请求的兼容模式是 AUTO,则通过执行系统配置检查将预期兼容模式设置为 ONOFF;否则,不做任何操作。实际上,此函数将请求的兼容模式从三种可能状态(ON/OFF/AUTO)减少到两种(ON/OFF),从而确定实际的 I/O 路径。此函数是轻量级的,因为推断结果会被缓存。

◆ is_compat_mode_preferred() [1/2]

static bool kvikio::defaults::is_compat_mode_preferred ( )
static

类默认值中的全局兼容模式是否预期为 ON

如果满足以下任一条件,则此函数返回 true

  • 兼容模式为 ON
  • 它为 AUTO,但被推断为 ON

从概念上讲,此函数的反面是全局兼容模式是否预期为 OFF,这将在满足以下任一条件时发生

  • 兼容模式为 OFF
  • 它为 AUTO,但被推断为 OFF
返回值
布尔值答案。

◆ is_compat_mode_preferred() [2/2]

static bool kvikio::defaults::is_compat_mode_preferred ( CompatMode  compat_mode)
staticnoexcept

给定请求的兼容模式,是否预期其会简化为 ON

如果满足以下任一条件,则此函数返回 true

  • 兼容模式为 ON
  • 它为 AUTO,但被推断为 ON

从概念上讲,此函数的反面是请求的兼容模式是否预期为 OFF,这将在满足以下任一条件时发生

  • 兼容模式为 OFF
  • 它为 AUTO,但被推断为 OFF
参数
compat_mode兼容模式。
返回值
布尔值答案。

◆ set_bounce_buffer_size()

static void kvikio::defaults::set_bounce_buffer_size ( std::size_t  nbytes)
static

设置用于在主机内存中暂存数据的 bounce buffer 的大小。

参数
nbytesbounce buffer 的大小,以字节为单位。

◆ set_compat_mode()

static void kvikio::defaults::set_compat_mode ( CompatMode  compat_mode)
static

设置 kvikio::defaults::compat_mode() 的值。

更改兼容模式会影响所有未明确设置 compat_mode 参数的新 FileHandles,但绝不会影响现有的 FileHandles。

参数
compat_mode兼容模式。

◆ set_gds_threshold()

static void kvikio::defaults::set_gds_threshold ( std::size_t  nbytes)
static

设置默认 GDS 阈值,即使用 GDS 的最小大小(以字节为单位)。

参数
nbytes默认 GDS 阈值大小,以字节为单位。

◆ set_http_max_attempts()

static void kvikio::defaults::set_http_max_attempts ( std::size_t  attempts)
static

设置每次远程 IO 读取的最大尝试次数。

参数
attempts在引发错误之前尝试的最大次数。

◆ set_http_status_codes()

static void kvikio::defaults::set_http_status_codes ( std::vector< int >  status_codes)
static

设置要重试的 HTTP 状态码列表。

参数
status_codes要重试的 HTTP 状态码。

◆ set_http_timeout()

static void kvikio::defaults::set_http_timeout ( long  timeout_seconds)
static

重置 http 超时。

参数
timeout_seconds允许传输完成的最长时间。

◆ set_task_size()

static void kvikio::defaults::set_task_size ( std::size_t  nbytes)
static

设置用于并行 IO 操作的默认任务大小。

参数
nbytes默认任务大小,以字节为单位。

◆ set_thread_pool_nthreads()

static void kvikio::defaults::set_thread_pool_nthreads ( unsigned int  nthreads)
static

设置默认线程池中的线程数。等待所有当前正在运行的任务完成,然后销毁池中的所有线程并使用新的线程数创建一个新的线程池。在池重置之前在队列中等待的任何任务将由新线程执行。

参数
nthreads要使用的线程数。

◆ task_size()

static std::size_t kvikio::defaults::task_size ( )
static

获取用于并行 IO 操作的默认任务大小。

使用 kvikio::default::set_task_size() 或通过设置 KVIKIO_TASK_SIZE 环境变量来设置默认值。如果未设置,默认值为 4 MiB。

返回值
默认任务大小,以字节为单位。

◆ thread_pool()

static BS_thread_pool& kvikio::defaults::thread_pool ( )
static

获取默认线程池。

注意,无法更改默认线程池。KvikIO 将始终使用同一个线程池,但可以更改池中的线程数(参见 kvikio::default::set_thread_pool_nthreads())。

返回值
默认线程池实例。

◆ thread_pool_nthreads()

static unsigned int kvikio::defaults::thread_pool_nthreads ( )
static

获取默认线程池中的线程数。

使用 kvikio::default::set_thread_pool_nthreads() 或通过设置 KVIKIO_NTHREADS 环境变量来设置默认值。如果未设置,默认值为 1。

返回值
线程数。

此类的文档生成自以下文件