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. C#实现的Check Password和锁定输错密码锁定账户

    C#实现的Check Password,并根据输错密码的次数分情况锁定账户:如果输入错误3次,登录账户锁定5分钟并提示X点X分后重试登录.如果5分钟后再次输入,累计输入错误密码累计达到5次.则账户会被 ...

  2. 38.Python自定义计算时间过滤器

    在写自定义的过滤器时,因为django.template.Library.filter()本身可以作为一个装饰器,所以可以使用: register = django.template.Library( ...

  3. EF Core For Oracle11中Find FirstOrDefault等方法执行失败

    问题描述 最近在使用ef core连接oracle的发现Find.FirstOrDefault.Skip Task分页等等方法执行失败.使用的是docker安装的oracle11,错误如下图: 解决办 ...

  4. Linux centos7 安装 phpMyAdmin

    yum install httpd php mariadb-server –y搭建lamp运行环境之后安装phpMyAdmin遇到的一些问题记录一下 1.官网下载phpMyAdmin压缩包 wget ...

  5. 浅谈python的第三方库——numpy(二)

    前一期博文中,初步探索了numpy中矩阵的几种运算操作,本文将展示numpy矩阵的元素抽取与合并操作. 1 元素抽取 在我们使用矩阵的时候,有时需要提取出矩阵的某些位置上的元素单独研究,这时就需要熟悉 ...

  6. 牛客练习赛56 E 小雀和他的王国

    题目链接:https://ac.nowcoder.com/acm/contest/3566/E 思路:tarjan缩点,桥重建图,dfs跑树的直径. #include <iostream> ...

  7. Mac下git的安装配置以及gerrit初次使用

    1.Mac下git下载 在终端首次运行git命令,若未安装,会提示下载开发者工具Xcode,根据提示下载即可: 2.查看git版本 git version 2.首次使用git配置 git config ...

  8. C#MVC用ZXing.Net生成二维码/条形码

    开篇:zxing.net是.net平台下编解条形码和二维码的工具. 首先创建新项目 选择MVC模板  添加一个控制器  在项目引用中的引用ZXing 进行联网下载 控制器需要引用 后台控制器   pu ...

  9. C# 中indexOf、lastIndexOf、subString方法的理解

    一.indexOf() indexOf("\\"):返回"\\"字符在此实例中第一个出现的索引位置,实例的下标是从0开始,如果未找到则返回-1. indexOf ...

  10. Python循环引用的解决方案

    1.延迟导入:即将 from xxx import yyy 放到函数或类的内部,从而使其作用域变成局部的,但是这样可能会对性能有些影响: 2.将 from xxx import yyy 转换成 imp ...