Восстановить неполный файл PDF
Учитывая приведенный ниже код, который выполняется в кластере с настенным временем ( #BSUB -W 10:00):
pdf("myPlots.pdf")
for(i in 1:300){
# a lot of data processing, unfortunately no data is being saved...
# ...
# then plot output
plot(1)
}
dev.off()
Вышеупомянутый код завершается, прежде чем конкурировать с циклом for (из-за настенного времени), и PDF не завершен. Затем я использовал этот сайт для восстановления, поэтому данные графика находятся в файле, он просто неполный.
Есть ли другой способ восстановить? Может быть, добавить текст в PDF-файл (с помощью текстового редактора), чтобы PDF-файл был готов?
1 ответ
Я бы предложил либо поднять мост, либо понизить реку.
То есть я бы рассмотрел одну из двух возможных ревизий вашего алгоритма, в зависимости от того, что именно вы делаете (для этого здесь не так много деталей, поэтому я собираюсь это сделать): либо сделайте каждую итерацию своего Зациклите завершенную задачу, если она окажется последней, пока не истечет время вашего настенного часового режима, или отрегулируйте либо счетчик циклов, либо предел настенных часов, чтобы задание выполнялось чаще.
Если вы не можете изменить количество циклов или время настенного цикла, посмотрите, можете ли вы пересмотреть процесс цикла так, чтобы каждая итерация добавлялась к предыдущей, чтобы любой цикл заканчивался полным выводом, и, таким образом, не имеет значения, будет ли другой итерация следующая.
В противном случае либо уменьшите предел цикла до некоторого количества, которое будет надежно завершено (например, 200 или 250), либо увеличьте предел времени ожидания до некоторого значения, которое позволит завершить задачу при нормальной загрузке системы. Прямо сейчас вы ставите себя между молотом и наковальней; одному или другому придется двигаться.