SLURMD_NODENAME: имя узла, на котором выполняется текущий шаг задания
(например, https://www.nccs.nasa.gov/user_info/ slurm / environment_variables / sbatch )
Итак, происходит то, что ваш файл cn.job выполняется в контексте выделения, но до любого шага задания (
srun
). Там он выполняется как обычный файл bash, поэтому переменные замещения заменяют значение$SLURMD_NODENAME
значением, которое видно на машине, на которой работает ваш пакетный скрипт. Затем результат выполняется через srun, что приводит к чему-то вроде:
srun echo $SLURMD_NODENAME
->srun echo node3
Другие команды предотвращают расширение переменной и запускают расширение (или имя хоста команда) на вычислительных узлах на шаге задания, поэтому они работают как ожидалось.
Рассмотрим
srun
как суперзарядныйssh
. Вы заметите, чтоsrun hostname && srun $HOSTNAME
будет вести себя точно так же, какssh node hostname && ssh node $HOSTNAME
(очевидно, по модулю параллельного выполнения).Небольшая разница для SLURM: файлы SBatch выполняются на вычислительном узле. Таким образом, вы не получите тот же результат, что и при запуске
srun
на узле входа.Для файла с одним выходом: не уверен, но обычно все выходные данные из задания собираются и помещаются в единственная раковина. Это стандартный вывод для интерактивных заданий или один выходной файл для sbatch. Откуда у вас были заполнители? Я знаю только
%j %A %a
для идентификаторов работы и массива. Там очевидно, что создается только один выходной файл.
Не изменяйте значение, сохраненное в самом DataTable
... вместо этого измените его внешний вид при отображении для пользователя, указав DataFormatString :
<asp:BoundField DataField="ExpireDate"
HeaderText="Expire Date"
DataFormatString="{0:dd/MM/yyyy}" />
Если вы измените формат даты с бэкэнда, и эта дата не будет отображаться во внешнем интерфейсе, то однажды попытайтесь удалить ошибку в вашем браузере, а затем повторите попытку.
Кроме того, еще одно решение не нужно использовать для цикла в бэкэнде. Непосредственно привязывайте данные таблицы только к источнику данных представления сетки и к внешнему интерфейсу DataFormatString.
<asp:BoundField DataField="ExpireDate" HtmlEncode="false"
DataFormatString="{0:d}" />
или
<asp:BoundField DataField="ExpireDate" HtmlEncode="false"
DataFormatString="{0:MM/dd/yyyy}" />