Хакимзянов Чубаров Воронина печатные лекции часть 1 (973557), страница 6
Текст из файла (страница 6)
Кроме того,модульная декомпозиция алгоритма существенно облегчает его распараллеливание, а «последовательная» программа, созданная на основеалгоритма, имеющего модульную структуру, может быть легко адаптирована для ЭВМ с параллельными процессорами в виде «параллельной».262.6. Связь алгоритма с архитектурой ЭВМ. При разработкеалгоритма необходимо «заглядывать вперед»: отчетливо представлятьсебе тип компьютерных систем, на которых предполагается базироватьсоздаваемый вычислительный комплекс. С одной стороны, вычислительные модули должны конструироваться таким образом, чтобы онибыли «инвариантны» относительно изменений системного программного обеспечения ЭВМ и ее конфигурации (вычислительной платформы).С другой, необходимо учитывать ограниченность различных уровнейпамяти ЭВМ, ограничения на слишком большие и малые числа (разрядность) и даже такие ньюансы, как аппаратная реализация машинных команд и используемые на конкретной машине методы округления.Такой учет может существенно повысить эффективность алгоритма, ноодновременно усложнить перенос готового программного продукта надругие вычислительные системы.Вычислительные программы надо создавать так, чтобы они умелисамостоятельно анализировать особенности конкретной вычислительной среды (платформы) и с учетом результатов такого анализа оптимизировать свою структуру.
Попытка реализации такой технологии былапредпринята в системе OLYMPUS и впоследствии развита в отечественном продукте САФРА [6].2.7. Исследование алгоритма. Так же, как и в случае математической модели, в отношении ее дискретного аналога и вычислительногоалгоритма имеется возможность выбора, поскольку одной и той же математической модели могут быть поставлены в соответствие различныедискретные модели, а одной и той же дискретной модели — различныеалгоритмы для поиска ее решения. Поэтому важную роль играет исследование свойств алгоритмов, в результате которого может быть сделанвыбор.Исследование начинается с изучения вопроса о корректности дискретной задачи: существует ли решение, является ли оно единственным и как оно зависит от входных данных.
Для некоторых не оченьсложных задач корректность удается установить с помощью методовфункционального анализа.Одним из главных вопросов является вопрос о сходимости приближенного решения к точному. Иногда решение этого вопроса удается свести к исследованию аппроксимации исходной модели дискретной и устойчивости алгоритма.27Весьма важной проблемой рассматриваемого этапа математического моделирования является проблема постановки начальных условийв дискретной модели, соответствующих начальным условиям исходнойнестационарной задачи: неудачная постановка этих условий может замедлить скорость сходимости приближенного решения к точному приизмельчении сетки (см. задачи 2.1 и 2.2). Такой же вывод справедлив в отношении аппроксимации краевых условий.
При использованииитерационных методов удачный выбор стартовых значений может существенно снизить затраты компьютерного времени, неудачный — значительно их увеличить или даже вообще не обеспечить получениеискомого решения.Важным требованием, предъявляемым к дискретной модели, является то, что ее решение должно обладать как можно большим числом свойств, присущих решению математической модели. Если для последней выполняются законы сохранения, то необходимо исследованиепо проверке выполнения аналогичных законов сохранения и для дискретной модели. Если в исходной модели решение положительно (температура, плотность), то необходимо исследовать на положительностьи приближенное решение. Если из каких-то соображений известно, чторешение математической модели является монотонно возрастающейфункцией, то необходимо добиваться, чтобы и приближенное решениеобладало этим же свойством и т.
п.В настоящее время известен обширный арсенал средств для исследования дискретных моделей и вычислительных алгоритмов. Эти средства основаны на достижениях теории численных методов и «чистой»математики, а эффективное их использование требует высоких интеллектуальных усилий и больших знаний в широком диапазоне научныхдисциплин. В теории численных методов многое сделано, но еще большепредстоит сделать. Пока теория отстает от потребностей практики, которая зачастую за неимением достаточно развитой теории вынужденаобращаться к эмпирике, предшествующему опыту, к «здравому смыслу» и интуиции.ЗАДАЧИ2.1.
Уравнение (1.8) аппроксимируем разностным уравнением (2.1),а начальные условия (1.10) — разностными начальными условиямиs0 = a,s1 − s0= 0.τ28(2.2)С помощью непосредственной проверки показать, что при малыхшагах τ сеточная функцияsj = α sin jϕ + β cos jϕ, j = 0, . . . , N,(2.3)¢где ϕ = arccos 1 − τ 2 ω 2 /2 , τ = T /N , 0 < T < ∞, α и β — произвольные действительные числа, является общим решением уравнения (2.1).Найти решение sj дискретной задачи (2.1), (2.2) и показать, что прималых значениях τ для погрешности решения выполняется оценка¡max |sj − s(tj )| ≤ Cτj=0,...,N(2.4)с постоянной C, не зависящей от τ .
Здесь s(t) — решение (1.11) задачи (1.8), (1.10).2.2. Немного подправим начальные условия (2.2) дискретной задачи:s1 − s0aω 2s0 = a,= −τ.(2.5)τ2Найти решение sj новой дискретной задачи (2.1), (2.5) и показать, чтопри малых значениях τ погрешность решения удовлетворяет оценкеmax |sj − s(tj )| ≤ C1 τ 2j=0,...,N(2.6)с постоянной C1 , не зависящей от τ . Таким образом, небольшое изменение разностных начальных условий повлекло за собой существенныйрост скорости сходимости приближенного решения к точному: вместосходимости с первым порядком по τ получили второй порядок сходимости.29§ 3. Некоторые принципы разработкипрограммВычислительный алгоритм отображает дискретную модель на множество действий, которые должны быть выполнены на ЭВМ.
Записьэтих действий на языке, понятном машине, выполняется на следующем этапе математического моделирования — этапе разработки программы (кодировании). Этот этап является «материализацией» проведенных ранее стадий интеллектуальных разработок и связан не толькос написанием текста программы: здесь происходит проектирование, написание, отладка и тестирование программ, проведение расчетов и анализ результатов, принятие решения о дальнейшей доработке программили их сдаче в эксплуатацию.3.1.
Проектирование программы. Если программа пишетсяодним автором для иллюстрации, например, эффективности разработанного им нового алгоритма, то никаких жестких требований к программе здесь не возникает, поскольку такая программа является одноразовым продуктом, причем недолговечным и используется она лишьсамим автором. Другое дело — большие программы для решения крупных научных проблем. Такие программы создаются коллективами высококвалифицированных программистов, требуют больших временныхзатрат, предполагается, что они будут долго эксплуатироваться «сторонними пользователями», поэтому подобного рода программы обязательно должны пройти стадию проектного обоснования. Далее пойдетречь именно о таких программах.Современные большие программы представляют собой пакеты прикладных программ (ППП), позволяющие решать не одну, а целый классзадач из определенной предметной области и предназначенные для исследования объекта на основе различных математических и дискретныхмоделей с помощью различных вычислительных алгоритмов.При проектировании программы разрабатываются схемы счета, которые устанавливают последовательность выполнения отдельных модулей в конкретных задачах, и схемы обмена данными между модулями.На этом этапе разрабатываются также структуры входных и выходныхданных.Управляющие и информационные связи, зафиксированные в схемахсчета, реализуются в специальной программе, конструирование и разработка которой ориентированы на два принципиальных момента.
Пер30вый — это создание комфортных условий для пользователя, цель которого — изучение явления, а не работа с программными кодами. Пользователю должны быть созданы условия для формирования своей задачи:ввода определяющих параметров и, если это необходимо, создания своей конфигурации схемы счета.
Второй задачей является построение попараметрам, введенным пользователем, исполняемого задания и запускрасчета.При проектировании схем обмена данными между модулями принимается во внимание, что в каждом модуле описываются данные, которые могут быть трех категорий: входные, выходные и внутренние (локальные). Первые две категории имеют смысл вне модуля и потомумогут быть названы глобальными данными.При проектировании программы следует иметь в виду, что на организацию вычислительного процесса, на эффективность процессов обмена данными самое непосредственное влияние оказывает аппаратура.Особую роль играет проектирование использования памяти ЭВМ, которая может иметь весьма сложную многоуровневую структуру. Так,многопроцессорные вычислительные системы делятся на системы с распределенной и с общей памятью. Одна из конфигураций суперкомпьютера — кластер, представляющий собой сеть из многих процессоров,у каждого из которых есть своя оперативная память.