РАЗРАБОТКА ВЫЧИСЛИТЕЛЬНОГО СЕРВЕРА ДЛЯ РЕШЕНИЯ ФИЗИЧЕСКИХ ЗАДАЧ

Кизяев Борис Викторович

Красноярский Государственный Университет, г. Красноярск, Россия

Постоянно развивающиеся физические науки требуют решения новых сложных проблем и очень точных результатов. Естественно, приход в науку новых компьютерных технологий значительно упростили аналитические и численные подходы к вычислению сложных задач. Но, как мы видим, исследовательские потребности в создании и расчете компьютерных моделей задач, особенно, в теоретической физике растут гораздо быстрее системных ресурсов рядовых компьютеров в любой лаборатории. Чтобы произвести нужные нам расчеты мы обязаны запустить отдельный ,например, MATLAB для каждой отдельной задачи и затратить немало ресурсов на обеспечение работы программы и, дополнительно, для работы в графическом режиме. В итоге компьютер использует ощутимое количество ресурсов не по прямому назначению, тем самым значительно замедляется работа других используемых приложений и, непосредственно, вычисление задачи. Возникают вопросы: Как решать несколько задач одновременно? Как получить высокоточные решения не в ущерб ресурсам собственного терминала? Как получить точное решение сложных ресурсоемких задач имея компьютер, с ограниченными возможностями, и т.д.? В поисках ответа на помощь приходит уже хорошо известная сеть Internet, объединяющая несколько миллионов терминалов-клиентов и несколько сот тысяч мощных серверов, обладающих внушительными системными параметрами нежели Ваш терминал в лаборатории. Концепция заключается в “разделении труда” между клиентом и сервером. Клиентом определяется задача, а сервер производит операции вычисления, после чего пересылает результат клиенту.

Фактически, данная работа представляет собой сетевой рабочий вычислительный пакет, реализованный автором на языке программирования JAVA 1.2 [1,2] c приложением для исследования уравнения Шредингера[3].

В контексте разговоров о сетях часто упоминается термин “клиент/сервер”. Под термином “сервер” подразумевается любой объект с общедоступными ресурсами. Это может быть вычислительный сервер, предоставляющий доступ к быстрым вычислительным операциям. Клиентом является любой другой объект, желающий получить доступ к определённому серверу. Понятие сокета[1,2] позволяет одному серверу обслуживать несколько клиентов одновременно, а также обрабатывать информацию различных типов. Это стало возможным после введения понятия порта, который является нумерованным сокетом на определенной машине. Сокеты TCP/IP используются для осуществления надежного, двунаправленного, постоянного соединения между узлами Internet на базе операций с потоками. Серверу разрешено обслуживать несколько клиентов, подсоединенных к одному порту, но не одновременно.

В идее разработки вычислительного сервера заключается создание исходного кода программы вычислительного сервера, на основе концепции клиент/сервер, поддерживающего протокол TCP/IP.

Клиентская часть представлена универсальным клиентским минимумом – диалоговым окном в графическом режиме для выбора и подключения желаемых классов для решения разного рода физических задач.

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

Для данного вычислительного сервера автором реализован класс для вычисления стационарного, одночастичного уравнения Шредингера в двумерной решетке произвольной формы с расположением узлов в виде прямоугольной сетки. Клиентом создается некая область произвольной формы, на которую наносится прямоугольная сетка с узлами . Количество узлов произвольно(эти начальные данные отправляются на сервер для произведения непосредственных расчетов). С помощью этой сетки мы исследуем уравнение Шреденгера.

, (1)

где . (2)

Положим , т.е бесконечно высокие стенки, то из (2) следует

(3)

далее уравнение (1) с помощью разностной схемы для дифференциальных уравнений в частных производных на сетке запишется как система уравнений:

, (4)

где i изменяется от 0 до N, N- количество узлов сетки, - расстояние между узлами по оси X, -расстояние между узлами по оси Y в двумерной решетке.

В итоге такого преобразования мы имеем систему линейных уравнений, коэффициенты которой представляют собой ленточную, пяти-диагональную матрицу, затем находим собственные значения и собственные векторы, которые, соответственно, являются уровнями энергии и волновыми функциями уравнения Шредингера на сетке.После завершения необходимых расчетов сервер отправляет результаты клиенту для просмотра и анализа.

1. Кен Арнольд , Джеймс Гослинг. Программирование на языке Java . /Пер. с англ. -СПб: Питер.1997- 304с.

2. Нотон Патрик, Шилдт Герберт. Полный справочник по Java.:Пер. с англ. -К.: Диалектика, 1997. - 592.: ил. (http://www.osborne.com)

3. И.В. Савельев Основы теотетической физики т.2 “Квантовая механика” М. 1977г.


e-mail: asf@asf.e-burg.ru