LINUX.ORG.RU

История изменений

Исправление vitruss, (текущая версия) :

Давайте тогда по порядку, раз интересно. Эти изображения получены на сканирующем просвечивающем электронном микроскопе, т.е. берётся пучёк электронов «размером» порядка 0.5 Å и с разбросом энергии порядка 40 мэВ (при общей энергии 80 кэВ) и сканирует образец. На вылете из образца электроны теряют часть энергии и, попадая в детектор, регистрируется спектр их энергий там (там стоит магнитная призма, 2048 каналов, в моём разрешение 7.7 мэВ), которая, для большинства электронов и не меняется вовсе (в моём случае образец толщиной ~2 атома, хотя это делают и для гораздо более толстых образцов). Таким образом спектр можно снять с пространственным разрешением меньше одного атома, и с достаточно высокой скоростью, кажется тут это примерно 100 мс на пиксель.

Действительно, 2048х2048 это разрешение обычного изображения, я написал размеры по памяти и не учёл, что для спектров была выбрана область примерно 100х100 пикселей. Размер файла при этом порядка 80 МБ, что соответствует размеру в те самые 34 ГБ для изображения 2048х2048.

Замена Войта принципиальное ускорение даст, причём существенное, только мне этого не надо. Мне нужен именно Войт для описания пика, потому что этот пик даёт вклад гораздо дальше своей полуширины, там где лежат гораздо менее интенсивные, но интересные для науки линии спектра.

Теперь про код. Действительно, в том фрагменте что приведён, нет «приближаем один спектр и используем его параметры для остальных». Я этот участок вырезал для того чтобы не нагружать первый пост, поскольку это не имеет принципиального значения для того чтобы сделать этот код параллельным. Больше всего времени занимает этот самый multifit, я тут доверяю библиотеке, но думаю что оно приближает спектры по очереди, потому что основано на scipy.optimize и не нагружает процессор больше чем на 100% одного ядра.

В целом вообще не сложно взять и обработать эти файлы по одному, запустив комп молотить на ночь, но зато интересно сделать это быстрее, чтобы разобраться как работать с процессами/потоками и применить это знание для более ёмких с точки зрения вычислений проблем, например, приближение всё этих же спектров в другой области гораздо большим числом этих самых Войтов…

Исходная версия vitruss, :

Давайте тогда попорядку, раз интересно. Эти изображения получены на сканирующей просвечивающем электронном микроскопе, т.е. берётся пучёк электронов «размером» порядка 0.5 Å и с разбросом энергии порядка 100 мэВ (при общей энергии 80 кэВ, полуширина распределения по энергии порядка 40 мэВ) и сканирует образец. На вылете из образца электроны теряют часть энергии и, попадая в детектор, регистрируется спектр их энергий там (там стоит магнитная призма, 2048 каналов, в моём разрешение 7.7 мэВ), которая, для большинства электронов и не меняется вовсе (в моём случае образец толщиной ~2 атома, хотя это делают и для гораздо более толстых образцов). Таким образом спектр можно снять с пространственным разрешением меньше одного атома, и с достаточно высокой скоростью, кажется тут это примерно 100 мс на пиксель.

Действительно, 2048х2048 это разрешение обычного изображения, я написал размеры по памяти и не учёл, что для спектров была выбрана область примерно 100х100 пикселей. Размер файла при этом порядка 80 МБ, что соответствует размеру в те самые 34 ГБ для изображения 2048х2048.

Замена Войта принципиальное ускорение даст, причём существенное, только мне этого не надо. Мне нужен именно Войт для описания пика, потому что этот пик даёт вклад гораздо дальше своей полуширины, там где лежат гораздо менее интенсивные, но интересные для науки линии спектра.

Теперь про код. Действительно, в том фрагменте что приведён, нет «приближаем один спектр и используем его параметры для остальных». Я этот участок вырезал для того чтобы не нагружать первый пост, поскольку это не имеет принципиального значения для того чтобы сделать этот код параллельным. Больше всего времени занимает этот самый multifit, я тут доверяю библиотеке, но думаю что оно приближает спектры по очереди, потому что основано на scipy.optimize и не нагружает процессор больше чем на 100% одного ядра.

В целом вообще не сложно взять и обработать эти файлы по одному, запустив комп молотить на ночь, но зато интересно сделать это быстрее, чтобы разобраться как работать с процессами/потоками и применить это знание для более ёмких с точки зрения вычислений проблем, например, приближение всё этих же спектров в другой области гораздо большим числом этих самых Войтов…