Мне нужен лучший алгоритм для работы с 64 ГБ ОЗУ. Я надеюсь, что Python будет более настраиваемым.(Если это так, я выучу Python.)
Если бы это было возможно:
|>>> ( 2. * 8 ) * 10E3 ** 2 / 1E12 # a 64GB RAM can store matrices ~1.6 GB
0.0016 # the [10k,10k] of complex64
| # or [20k,20k] of real64
|>>> ( 2. * 8 ) * 63E3 ** 2 / 1E12 # a 64GB RAM can store matrices in-RAM
0.063504 # max [63k,63k] of type complex
| # but
|>>> ( 2. * 8 ) * 36E6 ** 2 / 1E12 # the [36M,36M] one has
20736.0 # ~ 21PB of data
+0:00:09.876642 # Houston, we have a problem
#---------------------------------------------#--------and [2M7,2M7] has taken
~ month
on HPC cluster
Потребности в исследованиях очевидны, но такого языка нет (будь то Matlab,Python, ассемблер, Julia или LISP), который может хранить 21 петабайт данных в пространстве всего лишь 64 гигабайта физической памяти RAM, чтобы сделать возможной сложную матрицу (с таким заданным масштабом) вычислениями собственных значений иБыстро настолько, насколько это возможно.Под этим я также подразумеваю, что «выгрузка» данных из вычислений в оперативной памяти в любую форму памяти вне оперативной памяти настолько непомерно дорога (примерно на ~ 1E2 ~ + 1E5 ~ порядков медленнее), что любая такаявычислительный процесс приведет к возрасту только для первого «чтения» 21 ПБ данных элементов.
Если у вашего исследования есть финансирование или спонсорство для использования довольно специфической инфраструктуры вычислительных устройств, могут быть некоторые приемы для обработки таких куччисла, но не ожидайте, что получите 21 ПБ червей (данных), помещенных в большую (64, ГБ) банку (ну, довольно небольшую), «бесплатно».
Вы можете наслаждаться Python по многим другим причинам ии / или мотивы, но не из-за более дешевых и более быстрых параллельных вычислений класса HPC, а также из-за того, что они легко обрабатывают 21PB данных внутри устройства объемом 64 ГБ, или из-за какого-либо уничтожения основных и огромных дополнительных расходов [TIME]
-доменаиз разреженно-матричных манипуляций, видимых, но при их использовании в вычислениях.Сделав некоторую обработку разреженной матрицы xTB для получения результатов менее чем за 1E2 [мин] вместо 2E3, я осмелюсь сказать, что знаю, как чрезвычайно трудно увеличить как масштабирование данных [PSPACE]
, так исократить одновременно длительность обработки [EXPTIME]
одновременно ... действительно Адский угол сложности вычислений ..., где представление с разреженной матрицей часто создаетдаже больше головных болей (опять же, как в [SPACE]
, так и в худшем случае в [TIME]
, когда появляются новые виды штрафов), чем помогая хотя бы получить некоторую потенциальную [PSPACE]
-экономию
УчитываяОбъем параметров, я могу с уверенностью поспорить, что даже часть алгоритма не поможет, и даже обещания устройств с квантовыми вычислениями останутся в течение нашего срока службы, не способного увеличить такое обширное пространство параметров в неструктурированные квантовые элементы на основе отжига КК.управляемый минимизатор (обработка) для любой достаточно длинной (короткой) последовательности трансляции блоков параметровв процесс дополнения к проблеме кубит-поля (с ограниченным физическим размером), который в настоящее время используется сообществом контроля качества благодаря исследованиям LLNL и др.
Извините, подобной магии, по-видимому, не существует.
Использование доступных интерфейсов python для MUMPS не меняет проблему HPC в игре, но если вы хотите ее использовать, да, есть несколько из них.
ЭффективноеСокращение чисел в классе HPC по-прежнему является основной причиной проблем с продуктом эффективного хранения и извлечения представления данных [время обработки] x [(что угодно)].
Надеюсь, вы получитеи наслаждайтесь правильным сочетанием комфорта (питонские пользователи стремятся остаться в нем), и в то же время производительности класса HPC (серверной части любого типа), которую вы хотите иметь.