Чуть больше двух миллиардов степеней свободы - может быть и не среднее число в некоторых расчетах, однако ничем не выдающееся. Матрица 100 на 100 тысяч элементов вполне разумная. Насчет числа атомов - вот число Авогадро. И вот именно поэтому методами молекулярной динамики пока что сложно воспользоваться для чего-то близкого к макроскопическому размеру.
Если матрица разреженная - их и хранят и обрабатывают по совсем другим алгоритмам. Если плотная - смысл хранить триллионы, если их обработать не хватит никаких вычислительных ресурсов? И пишут там на фортране однозначно, не на Паскале.
Вот и я про то же самое.
Разве платформа .Net и множество библиотек-наработок не подходит для подобного?
Нет, если у вас вычисления на миллиарды ячеек - вам подходят низкоуровневые языки как C++.
А вообще вы всё ещё не озвучили что вы пытаетесь сделать.
И еще об оперативной памяти компьютера - 16 Гб будет тут явно мало
Получается, что несмотря на наличие средств в самом .Net, выделение непрерывных областей для огромных структур с параллельными “фантомами” - особенно для 32-битных процессов - не спасёт ни дефрагментация, ни принудительный сбор мусора, ни файл подкачки, ни рейд-массив, ни масштабируемость.
Не стоит всё в кучу сваливать.
Проблема .Net в этом деле только в высокоуровневости. В нём код всегда будет медленнее.
При чём тут дефрагментация и RAID массивы?
Принудительная сборка мусора нужна только для дебага, .Net сам знает когда оперативка кончается а значит пора чистить.
Файл подкачки спасёт от падения, но не от проблем скорости, которых будет больше.
Так что вы сделать то пытаетесь?
Не подходит. Для этого используют суперкомпьютеры, или, как минимум, мультипроцессопрные системы с языками класса “Параллельный Фортран”. Понимаете, ну вот есть прогулочные яхты, а есть авианосцы. И то, и другое - суда. Но никто на пытается взлетать на самолете с палубы яхты, как и катать подружек по морю на авианосце.
Да, компьютер тоже должен быть другой, может вообще другой. У меня приятель спалил таки жесткие диски, файл подкачки подкачал а у него было нечто, а не просто комп.
Предлагаю добавить функцию:
function TryRead(var x: boolean): boolean;
begin
Result := True;
try
Read(x)
except
Result := False;
end
end;
Добавили
Мне кажется, в “/// Вводит числовое значение x клавиатуры. Возвращает False если при вводе произошла ошибка” забыли добавить предлог “с”, следовательно, должно получиться “…значение x с клавиатуры…”.
Кроме того, предлагаю добавить функции наподобие (комбинация “TryRead(var x: integer): boolean” и “ReadInteger(prompt: string): integer”)
/// Выводит приглашение к вводу и вводит числовое значение x с клавиатуры. Возвращает False если при вводе произошла ошибка
function TryRead(var x: integer; prompt: string): boolean;
begin
Print(prompt);
Result := True;
try
Read(x)
except
Result := False;
end
end;
Обнаружил необрабатываемое исключение: оно появляется, если зайти в “Окно дизассемблирования”, когда после begin основной программы пусто, либо команды после begin основной программы к этому времени не выполнились (если поставить точку останова до begin основной программы).
Приложите код и скриншоты или лучше видео, на словах ничего не понятно.
То же самое, когда выполнение не перешло begin основной программы (противопоставление begin подпрограмм) (например, жёлтая стрелка на разделе описания переменных), но это был единичный случай, теперь мне не удаётся поставить жёлтую стрелку на строку до begin основной программы.
Да, теперь замечательно. В таком качестве можно сразу в issue. issue для IDE тут:
Если положите в issue - об этой проблеме точно не забудут. Но имейте в виду, что исправления проблем IDE обычно не в приоритете перед проблемами компилятора.
Предпочту не класть в issue самостоятельно, поскольку не хочу создавать аккаунт в GitHub.
Ну, вы много всяких неточностей сейчас находите, всё за вас туда переписывать не хочу. А на форуме вполне может потеряться.
Вы можете писать на почту (ibondarev@sfedu.ru
) разработчикам напрямую, чтобы на форуме не потерялось. Если возникнут трудности при таком подходе - вопросы к самим разработчикам. Если это уже неактуальный способ обращения к ним, то к ним же и вопрос почему он всё еще висит в IDE
(Модули
-> Сообщить об ошибке
). Но, в любом случае самый оптимальный способ - написание Issue на GitHub
, поскольку при таком подходе Вам не придётся ждать пока они проанализируют Ваше сообщение им и создадут Issue (или сразу закроют) ошибку/улучшение сами.
https://www.cyberforum.ru/pascalabc-net/thread2570021.html
@Admin вы уже давно собираетесь и не как не соберётесь сделать возможность создавать картинки из чего то кроме файлов.
Я всё игнорировал, в первую очередь потому что меня GraphWPF
не сильно то касается.
Но у меня есть подозрение, что проблема в том что вы просто забыли, потому что у вас нет отдельного ToDo
списка под каждый из ваших модулей. И вот как раз пишу потому что хочу его порекомендовать.