adfjobs.

职位

作业列表:每个文件夹或全局

当Adfjobs启动时,它将通过扫描本地目录来为您生成一个作业列表。所有具有相同文件名的文件,只有不同的扩展名,将被视为一个作业。作业也可能包含一个目录,它应该将.results与扩展名。

Adfjobs还可以显示全球作业列表。显示它所了解的所有工作(通过先前扫描目录,或通过运行它们)。这通常可以是一个巨大的列表,它是有限的(当前)到500个最近的工作。大优势是您不需要记住您保存的工作,它将在全局列表中自动显示。要在两种模式之间切换(仅显示当前目录中的作业,或显示所有已知作业)使用右下角的Toggle开关。

如果要查看全局作业列表,则可以使用 查看→作业位置 菜单命令显示作业所在磁盘上的位置。对于每个作业,将使用此信息显示额外的行。

作业列表在需要时自动刷新。你可以通过刷新刷新 工作→刷新列表 菜单命令,或按F5。对于每个工作,你会看到:

过滤器命令确定将显示的作业是什么样的作业。例如,您可以选择不显示目录或仅限ADF作业。

在右下角,您将找到一个切换按钮。此按钮将在adfjobs的两种模式之间切换:显示所有作业,或显示每个文件夹的作业。

工作状态(包括警告和错误信息)

状态图标是作业右侧的图标。它告诉您作业是否是新的,排队,运行,终止,准备好,用警告准备,或者用错误条件做好准备。

警告和错误条件是从作业的日志文件确定的。如果它包含警告,则图标将显示警告三角形。如果日志文件包含错误,则状态图标将更改为红色停止标志。如果作业的标准错误输出包含意外信息,则此外将被报告为错误。

错误或警告的详细信息将以在作业下方的颜色中显示。显然,当作业结束时,您通常没有有用的结果。如果打印了警告,则应确保您了解警告,并且ADF确实执行了您预期的计算。

选择作业

您可以选择一个或多个作业:

  • 左键单击 - 选择该作业
  • 左键单击 - 选择一系列作业
  • 右键单击(或控制左键单击) - 切换要选择或未选择的作业
  • 单击“搜索”图标 - 清除选择

要清除选择,请按ESC键,使用 工作→清除选择 菜单命令,或单击底部的白色空间中的某个位置或在所选作业中(因此不在名称,队列或图标之一上)。

运行作业:.run和.job

保存工作时,ADFInput会保存.adf文件和.RUN文件。 .adf文件包含adfinput的所有信息,如果您希望更改作业,请使用adfinput来制作它们。 adfinput将读取.adf文件。

.RUN文件包含要运行计算的基本命令和输入。它是故意保持尽可能简单。

但是,通常需要完成更多管理事项:制作空工作目录,使某些链接遵循运行计算等。这用于由运行脚本完成,但不再使用。如果您希望自己使用运行脚本,您将负责照顾这些细节。

要运行计算,请使用“文件”菜单中的“运行”命令。这将告诉Adfjobs运行您的工作。或者,您可以切换到ADFJOBS,选择您的作业(您应该从ADFInput中保存),然后从Adfjobs作业菜单中选择运行。

adfjobs将创建真正的作业脚本(使用.job扩展名)。这是Adfinput保存的.RUN脚本,其中包括在前端和最后的管理内容。

由于简单地包括.RUN脚本,如果您希望,您可以编辑它,并且ADFJOB将自动包含您的更改.RUN脚本。

如果设置了环境变量SCM_RESULTDIR,则作业脚本将更改为该目录。接下来它将从那里运行,所有结果文件都将存储在该目录中。

如果未设置环境变量SCM_Resultdir,则作业脚本将在其所在的目录中执行,并且结果文件也将位于该位置。

提供运行作业的确切命令取决于队列配置。

工作文件

本地文件

本地文件部分列出了ADFJOBS找到的所有文件。它们都有相同的名称(作业的名称)和不同的扩展名。在这里,您可以看到文件属于作业的文件,包括修改日期和时间,以及文件的大小。

双击某些扩展名将打开该文件。例如,双击.adf文件将在ADFInput中打开它。双击kf结果文件将在kfbrowser中打开它。

按住Control键的双击将打开文件作为纯文本文件。如果它实际上是文本文件,这只是一个好主意。在Linux上,编辑器环境变量决定要打开文本文件的程序。

一个有用的应用程序是双击.RUN文件。这将在文本编辑器中打开.RUN文件,具体取决于您的操作系统。在此编辑器中,您实际上可以更改.RUN文件。保存时,将在运行作业时将使用此修改后的运行文件。将覆盖.job文件,因此如果您希望进行手动更改,则需要更改.RUN文件。

您还可以首先选择本地文件。接下来从SCM菜单中选择一个GUI模块,如果可能的话,将由该GUI模块打开所选文件。

在本地文件中,您还可以找到一个名为的目录‘results’。当结果文件呈现其他呈现标准结果文件时,将创建这一点。对于本地工作,他们将始终存在,对于远程作业,将在使用远程命令的传输时或单击远程.Results文件夹中的一个远程文件时创建,如在ADFJOBS中显示。

远程文件

这是一个与本地文件列表类似的文件列表,但这些文件驻留在工作详细信息中指定的远程计算机上。如果您正在准备新的计算,它将是空的。完成计算时,它将显示远程计算机上的所有结果文件。

在列表顶部,显示了在远程计算机上实现的目录的名称。

您可以通过单击选择远程文件。这将导致文件传输到本地计算机,替换具有相同名称的任何本地文件。如果单击.results目录中的任何远程文件,则将传输属于作业的所有远程文件(覆盖具有相同名称的本地文件)。

选择远程文件后,将由从SCM菜单开始的GUI模块使用。

清理

计算后,可以保存许多文件。其中一些可能对您感兴趣,或者只是暂时感兴趣。你可以使用 工作→清理 命令删除不再需要的文件。它将呈现一个对话框,您可以在其中选择要删除的文件。默认保存最重要的结果文件。

归档工作

你可以使用 工作→存档 命令以收集属于作业的大多数文件,并将它们放在谷拓的tar归档中。这将大大减少工作所使用的空间量。该命令将在所有选定的作业上运行。

如果在ADFJOB中使用归档作业(或任何GUI模块)将将其识别为存档,并在使用之前自动卸载它。所以在实践中,您只能归档许多(或全部)您的工作并忘记它。这将节省大量磁盘空间。

导入/导出工作

如果您想与其他用户共享作业(或SCM支持),则有一种简单的方法来执行此操作。只需在ADFJOBS中选择您的工作,并使用 工作→出口... 命令。将出现一个对话框,允许您指定保存打包作业的​​位置。打包作业原则上只是一个包含所有作业文件的Gizpped Tar文件,具有一些额外的数据,以便adfjobs将其识别为打包作业。

使用 工作→导入...... 命令打开此类打包作业并将其添加到您的ADFJOBS列表中。

找到工作文件

一段时间后,您可能会在同一文件夹中收集大量结果文件。这 工作→显示文件 命令将显示属于计算机上所选作业的文件。它如何完全取决于您的操作系统。通常,窗口将打开显示目录中的文件,其中选择作业的文件。

测试工作

当您遇到运行作业时,在本地或通过某些队列所定义的时候,有时不容易弄清楚问题是什么。为了帮助您(或者,当您要求支持时)诊断问题ADFJOB可以进行测试工作。

使用 工作→生成测试工作,在ADFJOBS窗口中选择它,分配要使用的队列(或者如果要测试默认队列,则跳过此步骤),并使用 工作→运行 command.

该作业的日志文件将包含大量的诊断信息,如环境,许可详细信息,ADF版本详细信息等。执行一些一致性检查。此信息可能有助于您解决问题。如果没有,请联系我们,解释问题并包括测试作业的输出。

队列

队列告诉ADFJOBS如何运行所选作业:在哪里(可能在远程系统上!),如何以及谁。

在队列菜单中,您可以看到队列列表。在运行所选作业时,选择其中一个队列使用该队列。

如果您对远程计算机配置了队列,您将能够像本地机器一样轻松使用这些远程计算机。 ADFJOBS将处理将文件复制到远程计算机。它还将开始或提交您的工作,并告知您工作的进度。

如果您已定义自己的队列,例如要在某些远程群集上运行,则可以使用默认队列(而不是顺序队列) 队列→设置默认值 menu command.

对于每份工作,您可以在队列名称旁边的选项字段中指定一些额外的文本(围绕它的灰度矩形)。如何使用该文本取决于您的队列如何设置。例如,交互式队列使用它来指定在工作中使用的任务数。对于批处理系统,它可能是要使用的节点数量或某些时间限制或批量队列名称。

在第一次启动ADFJOB时,您将看到交互式和顺序队列。两者都将在本地计算机上运行作业,尽可能多的任务。您可以在作业的选项字段中输入一个数字(使用灰度矩形)来设置明确使用的任务数。

通过GUI首选项,您还可以将ADFJOB配置为自动拾取存储在中央位置的队列。它们需要定义一次,任何ADFJOBS用户都可以导入它们。这种队列被称为‘Dynamic queues’.

互动队列

当您第一次运行ADFJobs时,它将确保存在交互式队列。如果没有,它将自动为您创建这样的队列。

当您使用交互式队列运行作业时,您的作业将立即在本地计算机上运行。因此,您可以同时运行很多工作。

要指定要使用的任务数量,请在选项字段中输入数字。如果您将其留空,则将使用所有内核。

正如你可以过载你的机器,它可能不是你想要的,但如果你有一些工作运行并且想要另一个小的那个同时运行,那就太好了。另一个使用将同时在多核桌面机上运行多个单核作业。

顺序队列

当您第一次运行ADFJOB时,它还会确保存在连续队列。如果没有,它将自动为您创建这样的队列。

当您使用顺序队列运行作业时,只要没有其他作业运行,您的作业将在本地计算机上交互式运行。因此,您可以同时在Adfjobs中为adfjobs提供运行命令,但它们实际上将在另一个之后运行。

要指定要使用的任务数量,请在选项字段中输入数字。如果您将其留空,则将使用所有内核。

通常情况下,这是在本地计算机上运行作业的最方便和有效的方法。因此,它是默认队列(除非您更改该)。

设置自己的队列

您可以通过多种方式定义队列:

  • 队列→新... 基于其中一个包含的示例队列,
  • 队列→编辑... 更改队列的详细信息(如果您也更改了队列名称,则更改一个新队列),
  • SCM→首选项→ADFJOBS→动态队列 存储在某些中央系统上的导入队列

使用时 队列→新... 命令,您可以选择以开头的配置:

  • 互动:制作一个新的交互式队列。例如,要制作一个特殊版本,它将强迫您的作业仅使用1个任务。
  • LSF,PBS,SGE:制作一个新的队列,将您的作业提交给所选的批处理系统。这些批处理系统的配置可以是完全不同的。包含的示例应该仅作为示例,您需要修复详细信息。在“附带示例”中,选项字段用于指定要使用的节点数。

使用时 队列→编辑... 命令,选择要编辑的队列配置。

使用这些命令中的任何一个,将出现一个对话框,请求您设置您正在创建的队列的详细信息(或修改)。

通常它需要一些实验来正确设置所有细节。你可以使用 帮助→追踪到遥控器 菜单命令在adfjobs中追踪给定的命令与远程主机(通常使用参数的ssh或putty命令),并查看对从远程主机接收的这些命令的响应。该迹线将通过adftail显示。

配置队列时可以设置以下详细信息:

Remote host
您希望发出命令运行(或提交)作业的机器的名称。您应该能够使用SSH连接到该计算机,以及此处指定的主机名。如果您希望在本地计算机上运行,​​请将此字段留空或指定localhost。
Remote user
您需要在SSH命令中指定的用户名(如果有的话)。通常,这是远程计算机上的用户名。如果已配置SSH要在未指定用户名的情况下登录远程计算机,则可以将此字段留空。这也是设置其他人使用的队列的最方便的方法(在远程机器上有自己的帐户)。
Remote job directory
在远程计算机上,ADFJOBS需要设置输入文件并运行脚本,并需要收集结果。为此,ADFJOBS将在您指定的目录中创建自己的目录。典型的价值将是回家/工作的东西。
Run command

这command 在远程主机上 被执行。 adfjobs将始终将ssh进入远程计算机,然后发出运行命令。运行命令应以交互方式启动作业,或使用某些批处理系统提交作业。如果远程主机字段为空或localhost,则运行命令将在本地计算机上执行。

$作业将由远程计算机上的作业脚本的完整路径替换。

$ jobname将根据$作业的值替换为jobname替换,但删除了截断的空格。

$选项将由选项字段的内容替换。该选项通常将用于指定任务数,时间限制或批量队列名称。

如果使用RUN命令将作业提交到某些批处理系统,则应返回一个数字。此数字将分配给$ JID,并且可以由kill和作业状态命令使用。

交互式运行,只需输入“sh $job”。要将作业提交给队列,请指定提交命令(例如,qsub或其他一些特殊提交工具)。例如,检查用于交互式和批处理系统的预先配置的队列(通过 队列→新... menu command).

自动生成的作业脚本可接受可选参数。这个参数是‘eval-ed’在脚本的开始。因此,您可以使用它来设置环境变量(如NSCM)或其他内容。

发出RUN命令时,如果没有定义SCM_RESULTDIR,则工作目录将是$ scm_resultdir或.job脚本的位置。结果(输出文件等)也将保存在该位置。请注意,计算引擎(ADF,BAND ...)将在开始时自动更改其工作目录,以$ SCM_TMPDIR。您应该确保SCM_TMPDIR点指向正确的位置,根据您想要确保写入快速本地磁盘,而不是存储结果的(通常是共享)磁盘。

Use Local Batch
如果是,作业将在本地计算机上排队。一次只运行一份工作。这是针对顺序队列(默认值)设置的。当作业将排队或运行在远程系统上时,忽略此值。
Kill command
用于杀死排队或运行作业的命令。在此命令中,$ jid将由作业ID(从运行命令的输出)或进程ID替换。对于互动作业,Killall $ PID应该正常工作。此killall实际上是由一个特殊脚本所替换的,该脚本正在考虑杀死ADF和所有子进程。
Job status command
此命令将用于确定作业是否仍在排队或运行。如果作业不再排队或运行,则它应该返回一个空字符串。其他任何事情都会作为作业活跃的迹象。对于互动作业PS -P $ PID | Grep $ PID工作正常。
System status command
用于确定系统状态的命令。这可能是正常运行时间,或用于批处理系统的一些qstat命令。
Prolog command

作业脚本执行的命令,就在附带的.RUN脚本之前。这将用于正确设置环境。例如,您将提供脚本文件以将ADF的所有环境变量设置为ADFHOME,ADFBIN等。如果您同时使用不同版本的ADF,这尤其重要。请注意,作业脚本使用/ bin / sh启动,因此您应该使用sh样语法(不csh-like)。如果您的环境已经正确设置用于在远程主机上运行ADF,则不发出任何命令,您可以将此字段留空。

在prolog命令中,您可以使用由作业脚本定义的环境变量。最重要的是,环境变量SCM_OUT指向作业的输出文件,SCM_LOG指向日志文件,SCM_ERR指向错误输出。这使得可以轻松地将一些附加信息打印到这些文件。

您可以将多个命令放在这里分开”;”。但是,在大多数情况下,它更容易使用命令来源源。通过采购,您可以确保作业脚本提供了源文件中定义的环境中的更改。

Epilog command
这是作业脚本运行的命令,刚刚在附带的.RUN脚本之后。您可以使用它来复制保存结果文件,或执行一些清理操作。再次使用SH样式语法,仍然定义相同的环境变量..
Synchronize jobs
如果此字段设置为‘yes’,相应远程主机上的作业将用于作业同步(通过ADFJOBS同步作业命令)。

动态队列

动态队列 are updated automatically when ADFjobs starts.

adf.JOBS将检查您在首选项中指定的主机:

Open GUI preferences: SCM → Preferences
Panel bar Module → ADFjobs
Click the + button in front of Dynamic Queues
Enter the host name of the host on which to look for dynamic queues
Optionally: enter the username of the remote machine on which to look for dynamic queues
Click the 'Save' button at the bottom of the panel, and restart ADFjobs

如果用户名留空(或为值(用户名)),则连接到远程计算机时不会使用用户名。然后您的SSH配置确定要使用的用户名。

在列出的远程主机上,ADFJOBS首先检查$ SCM_queues环境变量。如果设置,它将导入$ SCM_Queues目录中定义的队列。如果未定义,它将尝试从$ home / .scm_gui导入队列。这是ADFJOBS存储队列信息的位置。

要定义动态队列,请先弄清楚您想要使用的(和/或其他)的队列设置。您可以通过如上所述配置具有ADFJOB的普通队列来执行此操作。随着许多用户通常将使用动态队列,您不应指定用户名(除非您希望所有用户在某些系统上使用相同的帐户)。确保它正常工作。

接下来在要存储动态队列定义的远程系统上制作一个目录。

将SCM_Queues环境变量系统设置为所有用户的远程系统。如果未定义SCM_Queues,则ADFJOBS将在远程平台上搜索$ home / .scmgui目录。以这种方式,用户可以设置自己的动态队列。

找到定义队列的文件:您可以在$ home / .scm_gui目录中找到这些文件。它们具有队列的名称,具有.tid扩展,并且是纯文本文件。接下来,将这些文件复制到远程系统上的$ scm_queues目录中。确保所有用户都有权限才能读取$ SCM_Queues目录和其中的文件。

注意:存储动态队列的服务器不需要与作业运行的同一台计算机。

注意:ADFJOBS用户需要通过SSH访问服务器

SGE和PBS的示例队列配置

在这里,您会发现SGE和PBS的示例.TID文件。他们在没有变化的情况下无法工作,您需要至少设置正确的主机名和RUNCMD,并且很可能需要更改prolog(或刚刚为空)。

sge队列的.tid文件的内容可能看起来像这样:

# hostname: machine.domain
# username:
# jobscript:
# prolog: source $HOME/setup/adf2016
# epilog:
# jobdir: $HOME/jobs
# runcmd: qsub -pe s3_mpich $options -q short3.q "$job"
# batch: no
# options: 2-2
# killcmd: qdel $jid
# jobstatuscmd: qstat | grep " $jid "
# sysstatuscmd: qstat
# label: My SGE queue
# logfile: logfile

类似,对于PBS队列,它可能看起来像这样:

# hostname: machine.domain
# username:
# jobscript:
# prolog: source $HOME/setup/adf2016
# epilog:
# jobdir: $HOME/jobs
# runcmd: qsub -lnodes=2:ppn=2:infiniband -lwalltime=$options "$job"
# batch: no
# options: 0:15:00
# killcmd: qdel $jid
# jobstatuscmd: qstat | grep $jid
# sysstatuscmd: qstat -q
# label: My PBS queue
# logfile: logfile

工具:设置许多工作并从许多工作中收集数据

您可以使用“准备”工具设置批次作业。例如,首先使用ADFInput使用优选的基础集,XC电位等设置ADF计算。接下来,使用准备工具生成一批类似的作业,但是对于不同的分子(例如从.xyz文件中取出)。或者您可以为分子设置计算,并生成一组具有不同XC电位和/或集成精度的作业。

报告工具是生成一个或多个计算的报告。此报告将包含您在定义a时选择的信息‘report template’。将保存到.t21的大多数属性将可用。您可以像将(如同性恋或SCF密度一样)生成图像。这些结果通常将在HTML表中收集:每个分子的一行,以及每个属性的一列。

报表模板定义了要进入报告的信息。

准备:立即设置许多工作

您通过此激活准备工具 工具→准备... menu command.

将出现一个窗口,您可以使用来指定如何生成一组作业。

呈现了三个主列表字段:运行字段,coordinate字段和输入选项字段。在这些列表中的每一个中,您可以指定多个选项。按下时‘OK’adfjobs将通过以各种可能的方式组合选项来生成作业。

运行列表 选择要运行的一个或多个.adf文件。 a .adf文件只是在以前使用的adfinput设置的计算。或者,可以在按下时,使用一个预定义的.adf文件中的一个预定义的.adf文件‘+’按钮。要添加.adf文件,请使用下拉菜单,或在文本字段中指定文件名并按Return。您可以在文本字段中使用通配符,因此默认值(* .adf)将扩展到当前目录中的所有.adf文件。要从列表中删除某些内容,请选择它并按‘-‘ button.

坐标列表 当此列表为空时,将使用.adf文件中找到的分子。当在该列表中存在一个或多个坐标时,.ADF文件中的分子将被坐标文件中定义的分子替换。您可以使用.adf文件,.xyz文件,.t21结果文件,.mol文件,.pdb文件或其他格式的adfinput可以使用‘Import Coordinates’功能。通过在此处列出多个文件.ADF文件(您在运行中列出的:列表框)都将依次与每个分子执行。因此,如果指定了两个运行文件(例如单点计算,以及几何优化)和三个分子,则最终将有6个作业。

输入选项列表 在此列表中,您可以定义备用输入选项。 .adf文件中的相应输入选项将由您在此处指定的值替换。因此,如果您指定了两种不同的基集,则每个作业将被两项新作业替换为您指定的每个新作业。您还可以指定其他事情,如集成准确性等等。如果只指定一个值,则该值将用于所有作业。如果指定多个值(重复添加该选项),则会生成多个作业。

文本字段可用于添加其他关键字,或替换现有的值,其中指定的值。通过按文本字段中的返回将这些选项添加到选项列表中。值将用作‘-k’ADFPREP命令的参数。有关此详细信息,请查看ADFPrep文档。

生产工作选择 最终字段将告诉准备工具生成作业的位置(目录是相对于当前目录的,并且如果它尚不存在)将被创建)。还将创建一个大工作,这只是对所有个人工作的串联。在交互式运行时,运行此作业可能更方便而不是所有的所有作业。结果应该是相同的,这项大作业将产生看起来好像是由个人工作制作的文件。

报告:从许多工作中收集数据

要提出计算结果的报告,首先必须设置一个‘Report Template’这定义了报告应收集的信息。您可以通过“工具”菜单中的“新建,编辑和删除报表模板”菜单命令管理这些报告模板。

编辑报告模板时,将显示一个对话框,其中包含许多选项。只需检查您希望在报告中收集的信息的选项。请注意,您还可以在报告中包含图像(Of Of)。

如果您希望包含对话框中不存在的内容,则可以使用最后一个字段:额外的Adfreport命令行选项。无论您在此处指定什么,都将传递给Adfreport以生成报告。这允许您获取.t21结果文件中可用的任何信息。检查Adfreport文档以获取语法详细信息。

设置报表模板设置后,可以使用build命令实际生成报告。报告的数据将从当前所选的作业中获取。您可以使用更新上次报告命令使用其他不同作业更新具有来自其他作业的新数据的报告。这些作业甚至可以位于不同的目录中。这允许您一次收集来自职位的信息。

彼此取决于乔布斯系列

在ADFInput中,您可以指定(在坐标面板中),它应该使用来自其他文件或作业的分子。 然后创建作业,其取决于另一个作业或某些其他文件(例如.sdf文件)。

当您选择作业时,ADFJOBS显示此类依赖项。

要运行彼此依赖的这样的一系列工作,您可以在系列中运行最后一份工作。 ADFJOBS将确定还需要运行的其他作业,并自动启动它们(使用与您自己开始的作业的相同队列)。

在教程中,您将找到此类作业的几个例子。