1. 正文

1.1. 一些问题

如果真正要将HTCondor高通量计算产品化还需要很多工作要做,HTCondor并没有GUI界面,更多更全面的功能在Linux系统下的命令窗口下更方便。

拆分任务也是使用者值得考虑的问题,很多的密集运算其实不太方便拆分,拆分后大概率要进行合并操作,这种合并操作可能也相当耗时,且只能单机运算不能进行分布式计算。拆分任务还需要一定的经验,即如何保证负载均衡,让所有的任务同时完成。

文件访问也是个值得研究的问题。Windows下回默认使用文件传输机制,也就是将数据随着任务程序发送到任务机上区运行,这种方式往往会造成巨大的IO阻塞;再运行完成后,传送的数据又会被清空删除,也造成了IO性能浪费。所以,如果条件允许的情况下,最好还是使用分布式文件管理系统,当然这又是另外一个问题。

Windows下使用的vanilla模式部分功能还是受限的:

  1. 是发送到任务机的任务程序无法访问任务机的网络地址资源,这是由于安全策略决定的;
  2. 发送的任务程序被进一步封装了,默认参数有改变;
  3. 在任务机计算资源存在问题时,不能自动迁移以及断点续作。这个功能对于HTC来说是比较重要的,HTC处理的就是稳定的进行规模运算的问题。这个问题也需要进一步深究。

HTCondor本身的计算资源是按照CPU的核心数划分的;这一点也很值得商榷。如果给一个8核的机器提交任务,这台机器就会同时运行8个任务,如果恰好这个任务是与IO密集相关的,就会造成IO性能的浪费。毕竟硬盘总是只有一个磁头,单个磁头在磁盘中反复移动,会造成磁盘的损耗。而且CPU可以按照核心数划分,那么GPU资源呢?对于基于GPU计算的任务程序该如何划分呢?很多实际的情况下可能是把一台机器作为一个节点更合理一些。

为了达到更好的性能,我曾经简单的采用文件共享机制的办法。也就是HTCondor的任务程序虽然无法访问网络资源,但是可以在计算之前把文件共享做好,把需要的数据提前传送到任务机器上去,保证任务程序访问本地资源即可。这样发送的数据可以反复使用,有助于后续任务的执行效率。这种办法怎么说呢,除非你对网络文件共享那一套非常熟悉,否则建议不要这么做。

1.2. 使用建议

  1. condor_q显示任务为H也就是挂起,说明发送的任务程序可能无法正常运行,一般是任务机器缺少必要的运行环境如一些dll。
  2. 网络环境需要保持稳定。一些安全软件、防火墙、网络工具可能会造成网络环境的变动,造成任务无法执行。上一篇的实例是基于本地局域网的。
  3. HTC更强调稳定性而不仅是高性能,所有的改动都要基于这个原则。
  4. HTCondor有设置任务队列优先级运行的功能condor_prio,可以查看文档内相关的说明。
  5. 在HTCondor帮助文档的7.2.4节"Executing Jobs as the Submitting User"提到了访问任务程序网络资源的问题:

    By default, HTCondor executes jobs on Windows using dedicated run accounts that have minimal access rights and privileges, and which are recreated for each new job. As an alternative, HTCondor can be configured to allow users to run jobs using their Windows login accounts. This may be useful if jobs need access to files on a network share, or to other resources that are not available to the low-privilege run account.
    This feature requires use of a condor_credd daemon for secure password storage and retrieval. With the condor_credd daemon running, the user’s password must be stored, using the condor_store_cred tool. Then, a user that wants a job to run using their own account places into the job’s submit description file
    run_as_owner = True

这一段的意思是更后台condor_credd进程有关,需要配置相关的环境。但是我根据7.2.5节"The condor_credd Daemon"进行配置并没有成功,有兴趣的童靴可以自己试一试。

2. 相关

上一篇
目录

高通量计算框架HTCondor(六)——拾遗的更多相关文章

  1. 高通量计算框架HTCondor(一)——概述

    目录 1. 正文 2. 目录 3. 参考 4. 相关 1. 正文 HTCondor是威斯康星大学麦迪逊分校构建的分布式计算软件和相关技术,用来处理高通量计算(High Throughput Compu ...

  2. 高通量计算框架HTCondor(四)——案例准备

    目录 1. 正文 1.1. 任务划分 1.2. 任务程序 2. 相关 1. 正文 1.1. 任务划分 使用高通量计算第一步就是要针对密集运算任务做任务划分.将一个海量的.耗时的.耗资源的任务划分成合适 ...

  3. 高通量计算框架HTCondor(五)——分布计算

    目录 1. 正文 1.1. 任务描述文件 1.2. 提交任务 1.3. 返回结果 2. 相关 1. 正文 1.1. 任务描述文件 前文提到过,HTCondor是通过condor_submit命令将提交 ...

  4. 高通量计算框架HTCondor(二)——环境配置

    目录 1. 概述 2. 安装 3. 结果 4. 相关 1. 概述 HTCondor是开源跨平台的分布式计算框架,在其官网上直接提供了源代码和Windows.Linux以及MacOS的安装包.因为平台限 ...

  5. 高通量计算框架HTCondor(三)——使用命令

    目录 1. 目录 2. 进程 3. 命令 3.1. condor_q 3.2. condor_status 3.3. conodr_submit 3.4. conodr_rm 4. 相关 1. 目录 ...

  6. 腾讯正式开源图计算框架Plato,十亿级节点图计算进入分钟级时代

    腾讯开源再次迎来重磅项目,14日,腾讯正式宣布开源高性能图计算框架Plato,这是在短短一周之内,开源的第五个重大项目. 相对于目前全球范围内其它的图计算框架,Plato可满足十亿级节点的超大规模图计 ...

  7. 译 - 高可用的mesos计算框架设计

    原文地址 http://mesos.apache.org/documentation/latest/high-availability-framework-guide/ 阅读建议:有写过或者看过Mes ...

  8. Storm分布式实时流计算框架相关技术总结

    Storm分布式实时流计算框架相关技术总结 Storm作为一个开源的分布式实时流计算框架,其内部实现使用了一些常用的技术,这里是对这些技术及其在Storm中作用的概括介绍.以此为基础,后续再深入了解S ...

  9. Spark Streaming实时计算框架介绍

    随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐.用户行为分析等. Spark Streaming是建立在 ...

随机推荐

  1. 【python基础语法】国庆扩展练习题

    ''' 一.国庆知识小拓展 1. 用户登陆程序需求: 1. 输入用户名和密码; 2. 判断用户名和密码是否正确? (name='root', password='123') 3. 为了防止暴力破解, ...

  2. centos yum 安装jdk1.7

    安装: yum -y install java-1.7.0-openjdk-devel.x86_64 环境变量: vi /etc/profile export JAVA_HOME=/usr/lib/j ...

  3. C语言实现读取字符转换为浮点数,不使用scanf函数

    c语言读取int或者float数据,我们习惯于使用scanf函数,但是如果不使用scanf函数,该怎么实现呢. 这里就来尝试一下,不使用scanf来读取数据并转换为float类型. 下面的getflo ...

  4. css基础-css选择器和css文本样式相关

    css基础-css选择器和css文本样式相关: 使用link链入外部样式,页面加载时会同时加载样式 @import url(“*.css”);使用导入式,页面加载完后,才会加载样式 链接伪类的顺序 : ...

  5. Docker Compose搭建ELK

    Elasticsearch默认使用mmapfs目录来存储索引.操作系统默认的mmap计数太低可能导致内存不足,我们可以使用下面这条命令来增加内存: sysctl -w vm.max_map_count ...

  6. redis的一些常见面试题

    1 .在项目中缓存是如何使用的? 2.为啥在项目里要用缓存呢? 用缓存,主要用途,高性能和高并发 高性能: 场景举例:假如有这么一个操作,用户发起请求,操作数据库,查出结果,耗时600ms,然后这个结 ...

  7. qt 带箭头的直线 (类似viso)

    2020.02.27 本来上传到CSDN,后来想想,我要放弃csdn了.csdn已经跟我分享的精神背道而驰了.想要代码,留邮箱吧. 近来Qt开发时可能遇到这样的需求:两个(或多个)矩形,要用直线将它们 ...

  8. linux下定时网站文件备份和数据备份以及删除旧备份标准代码

    直切正题: 文件备份:web.sh 数据备份:db.sh 删除旧备份:clear.sh vi web.sh文件内容为: #!/bin/bash        解释:shell脚本标准头 cd  网站文 ...

  9. MY_0001:添加命令到自定义工具栏

    1,按住 ctrl + shift 2,点击命令即可

  10. Java数列循环右移

    描述 有n个整数组成一个数组(数列).现使数列中各数顺序依次向右移动k个位置,移出的数再从开头移入.输出移动后的数列元素,元素之间逗号隔开. 题目没有告诉你n的范围,要求不要提前定义数组的大小. 另外 ...