LINUX.ORG.RU

Jupyter lab

 , ,


1

1

А есть ли что-то похожее на проект Jupyter для проведения научных расчётов и одновременной записи формул с интерактивщиной? Octave(Matlab) знаю, но это немного не то, чего мне бы хотелось. Больше всего я хотел бы сохранять состояние сессии, чтобы можно было продолжить с прерванного места расчётов, а то возня с pickle для сохранения каких-то посчитанных структур меня не шибко радует, хотя может я просто слишком много хочу... Расчёты такие, что считать нужно часов по 8, потом думать день над результатами, потом опять считать часов по 8 с использованием предыдущих результатов и так я уже недели 2 вожусь где-то и судя по всему ещё месяц буду возиться... Поднимать сервер вне дома не хочется, а дома не вариант чтобы он гудел 24/7, мешая спать, тем более время от времени надо делать и другие штуки на пекарне, так что висящий питон с подгруженными структурами по паре гигов каждая, не радует меня.

★★★★★

R умеет сохранять сессии. Есть Rstudio (Rmarkdown), или ESS.

Но вообще опыт показывает, что хранить все в памяти и сохранять по необходимости - это ненадежно. Если подсчет долгий, то лучше явно сохранить результат. Воспроизводимость, бэкапы, и т.п.

anonymous ()

Я таких не знаю. Пиши сам функции для экспорта-импорта объектов и скрипты для восстановления сессии.

Расчёты такие, что считать нужно часов по 8, потом думать день над результатами, потом опять считать часов по 8 с использованием предыдущих результатов и так я уже недели 2 вожусь где-то и судя по всему ещё месяц буду возиться…

Да это же обычная лабораторная рутина. Ищи по запросам «lab notebook/journal», «research organization» и т.д. В этом вопросе лучше не привязываться к конкретному инструменту, а прикинуть удобный лично для тебя workflow.

Вот тебе несколько ссылок, может найдешь что-то интересное (я не проверял перед написанием сообщения, просто скопировал из файла):

Если будут интересные вопрос или интересные идеи на этот счет - пиши в личку, обсудим.

P.S. Я на всякие численные эксперименты отдельную ветку в git создаю. Удобно потом ссылаться на эксперимент просто по хешу коммита.

aquadon ★★★★★ ()
Последнее исправление: aquadon (всего исправлений: 1)

вообще, правильное решение - избавиться от глобальных переменных и сохранять не сессию а «модель», то есть задать иерархию модулей и их данных - с деревом обьектов сериализация применяется натурально.

но если и правда вдобавок к «модели» нужна сохраняемая помойка из переменных, spyder умеет сохранять ipython сессии в духе R/RStudio (таб variable explorer), да и вообще они же все в одном неймспейсе, вроде не проблема его целиком сохранить.

anonymous ()
Ответ на: комментарий от anonymous

А модели (цельной и единой) нет. Есть словари и отдельные объекты, которые надо хранить, т.к. их заполнение очень геморройное и не всегда понятно что именно из посчитанных заранее результатов может пригодиться на дальнейших шагах, так что цель хранить то, что долго вычислять. Модель и нормальное ООП красиво мазать это когда уже будет понятно что там получится. А так, например, сейчас у меня в зависимости от корреляций между значениями ключей в двух разных словарях есть аж как минимум 3 варианта того, как дальше я буду считать, 1 если корреляция по всем элементам (ужесточение процедуры расчёта/отказ от текущей гипотезы), другой если выделится чёткое подмножество которое будет коррелировать (взять ту часть, которая не имеет корреляций и работать с ней, гипотеза верна и всё в шоколаде), а третий когда корреляций вообще не будет (откат на более ранний этап исследования, работа с более обобщенными данными).

peregrine ★★★★★ ()

+1 к R.

rmarkdown на RStudio+knitr

Латеховые формулы, если надо. Рисуночки. Графики.

Можно сохранять сессии, или просто сбрасывать нужные переменные в файлики, чтобы потом подгрузить.

luka83 ()

Ещё лучше - писать нормально код и использовать какую-нибудь штуку типа DVC. Но это предполагает сохранение всех промежуточных результатов на диск.

ei-grad ★★★★★ ()
Последнее исправление: ei-grad (всего исправлений: 2)
Ответ на: комментарий от ei-grad

Тоже вариант, думаю железку только апнуть придётся и карточку пробросить, а то слишком тяжело считать, а там и GPU иногда нужно через батарейки.

peregrine ★★★★★ ()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

погодь, я думал дело в стоимости - а если нет, пчм просто не арендовать сервак? там и гпу можно подключить в случае чего, а потом сразу отключить как ненужно стало. уж в наше время чтоб гонять расчеты локально нужна очень весомая причина, облака стоят копейки по сравнению с апгрейдом железа

genryRar ★★ ()
Ответ на: комментарий от genryRar

, пчм просто не арендовать сервак? там и гпу можно подключить в случае чего, а потом сразу отключить как ненужно стало. уж в наше время чтоб гонять расчеты локально нужна очень весомая причина, облака стоят копейки по сравнению с апгрейдом железа

Человек занимается натуральной инновацией. Для чего Вам ему советовать сливать информацию о его работе в облака?

anonymous ()
Ответ на: комментарий от peregrine

как минимум один облачный российский провайдер (не будем называть его имя) сертифицирован по 152фз и iso-как-его-там.

ну такто я не настаиваю, паранойя есть паранойя. для своих параноидальных нужд я храню данные в шифрованных паркетах на s3 и расшифровываю их в момент исполнения

просто на мой взгляд поднимать тяжелые вычисления дома крайне не оправданно как экономически, так и в плане поддержки.

genryRar ★★ ()
Ответ на: комментарий от genryRar

просто на мой взгляд поднимать тяжелые вычисления дома крайне не оправданно как экономически, так и в плане поддержки.

Ну я сейчас научной деятельностью занят. Так что для меня оправдано, т.к. коммерческой выгоды я от этих вычислений не имею никакой, а вот кое-какие документы и интересные результаты в результате получу, которые будут иметь пользу для меня в плане работы и места жизни.

peregrine ★★★★★ ()