SGE_GPU补丁实现Linux下多GPU调度

需积分: 9 0 下载量 188 浏览量 更新于2024-11-03 收藏 95KB GZ 举报
资源摘要信息:"SGE_GPU是一个针对Sun Grid Engine (SGE) 2011.p1的补丁,该补丁的主要目的是使SGE能够支持多GPU调度功能。Sun Grid Engine(现在被称为Oracle Grid Engine)是一个分布式资源管理系统,广泛应用于高性能计算集群,能够处理任务调度以及资源管理。SGE_GPU补丁是在SGE 8.18版本的基础上开发的,专为多GPU环境设计,能够对作业或MPI作业中的进程分配GPU资源。 在使用SGE_GPU补丁时,需要对源代码进行重新编译,并且必须设置一个新的消耗品(consumable)叫做'ngpus'。'ngpus'消耗品的值需要分配给集群中的每个节点,其值代表了节点上可用的GPU数量。用户提交GPU作业时,可以通过-qsub命令行选项‘-l ngpus=1’来指定请求的GPU数量,例如,如果需要为作业分配一个GPU,可以使用命令‘>qsub -l ngpus=1’;对于并行作业,如果需要4个进程分别使用一个GPU,可以使用命令‘>qsub -pe openmpi 4 -l ngpus=1’。这里的‘-l ngpus=1’表示为一个进程请求一个GPU。 SGE_GPU补丁还支持在一个节点上调度多个GPU给不同的作业。例如,如果一个名为node001的节点安装了四个GPU,那么JobA可以使用GPU0,JobB使用GPU2,而JobC请求两个GPU时,它可以使用GPU1和GPU3,并在node001上设置作业环境,如‘CUDA_VISIBLE_DEVICES=1,3’。对于不使用GPU的作业,应将CUDA_VISIBLE_DEVICES设置为空。 值得注意的是,此补丁不依赖于负载均衡器,意味着集群管理器不需要额外的负载传感器来处理GPU资源的调度。该补丁是在CentOS 6.2环境下开发的,运行在Linux内核版本2.6.32-220.2.1.el6.x86_64之上。需要注意的是,此补丁仅适用于小型模型或测试环境。 SGE_GPU补丁的发布,让SGE系统在GPU资源管理和调度上有了更多的灵活性和效率,特别是在处理需要大量并行计算的科学和工程计算任务时,能够大大提高计算资源的利用率和作业执行的效率。" 知识点总结: - Sun Grid Engine (SGE):一个广泛用于高性能计算集群的分布式资源管理系统,能够进行任务调度和资源管理。 - SGE_GPU补丁:特定于SGE 2011.p1的补丁,目的是增加对多GPU环境的支持。 - 多GPU调度:能够将不同的GPU资源分配给集群中的不同作业或进程。 - 消耗品(consumable):在SGE中用于表示可消耗资源的单位,此处为'ngpus',用于表示可用的GPU数量。 - CUDA_VISIBLE_DEVICES:环境变量,用于设置进程可见的GPU设备,格式为逗号分隔的设备ID列表。 - MPI作业:一种并行计算模型,允许多个进程之间进行通信和数据交换。 - 作业调度:在SGE系统中,根据用户需求和资源可用性将计算任务分配给计算节点的过程。 - Linux内核:操作系统的核心部分,管理硬件资源并提供程序运行所需的环境。 - CentOS:一种基于Red Hat Enterprise Linux构建的Linux发行版,常用于服务器环境。 - 开源软件:SGE_GPU补丁属于开源类别,意味着它的源代码可以被公开访问和修改。 以上知识点综合了SGE_GPU补丁的功能、操作方式以及与之相关的技术背景,为理解和应用SGE_GPU补丁提供了详实的信息。