![]() |
|
![]() ![]() ![]() |
|
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Здравствуйте!
Столкнулась со следующей проблемой: есть научный проект, требующий высокопроизводительных вычислений. Они собственно уже реализованы на С++ с помощью распределения на CORBA. Но разработчики потерялись, код на С++ не работает, и копаться в нем нет желания. Нашла нечто похожее на Fortran. Но без распределения. Подскажите, имеет ли смысл сейчас применять Fortran??? Можно ли его использовать с CORBA? Также меня интересует, платные ли для него компиляторы? (т.к. разрабатываемый проект должен использовать только бесплатное ПО) А может стоит переписать все на Java??? Вообще Java применим для высокопроизводительных вычислений, или об этом смешно даже говорить? (Дело в том, что Java я знаю лучше нежели другие языки... ) Читала, что на Java легче всего сделать распределение используя RMI... Но важна скорость... Что посоветуете? В Интернете много информации о том, что Fortran - лидер в области высокопроизв. вычислений, но с другой стороны - у нас почему-то он не распространён... Заранее спасибо за любый ответы и советы ) |
|||
|
||||
Иванофф |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 8.9.2006 Репутация: нет Всего: нет |
у вас как в сказке "приди не одетой и не раздетой, с подарком и без подарка"
CORBA и высопроизводительные вычисления - это вроде несколько разное. проект написан, но разбираться не хотите. бесплатное ПО и высокопроизводительные вычисления - тоже не совсем совпадает. вы знаете Java, но ищете сторонних разработчиков, тогда причем ваше знание Java. Fortran - лидер в области высокопроизв. вычислений если возьмете правильный компилятор и правильных программистов (которых вроде негде взять) Это сообщение отредактировал(а) Иванофф - 5.12.2008, 02:50 |
|||
|
||||
Cross |
|
||||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Дело в том, что вычислительное приложение, работающее на С++, как говорят, работало очень и очень медленно.
Поэтому и не хотят его восстанавливать.
Почему бесплатное ПО "не совпадает" с высокопроизводительными вычислениями? Нет бесплатных компиляторов? или что?
Я не хочу искать сторонних разработчиков, если бы знала, что Java даст приемлемую скорость, использовала бы только ее. CORBA или RMI используется для распределения, но разве это не относится к высокопроизводительным вычислениям. Это же частный случай параллельных вычислений... |
||||
|
|||||
kemiisto |
|
||||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: нет Всего: 160 |
А что с ним случилось? Разработали новый (более быстрый) алгоритм?
Потому, что бесплатные FORTRAN-компиляторы на выходе дают более медленные исполняемые файлы, нежели платные. Это пожно погуглит: "FORTRAN Benchmarks". Вот, например.
Сначала хотел просто высказаться по поводу скорости Java, но потом решил зайти на старый-добрый http://shootout.alioth.debian.org/. Я в шоке, господа. ![]() Это сообщение отредактировал(а) kemiisto - 5.12.2008, 12:54 -------------------- |
||||||
|
|||||||
Cross |
|
||||||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
изначально была программа на Fortran, и работала достаточно быстро. Но т.к. дело касается молекулярной динамики, потребовалось моделировать все большее количество точек, потому решили переписать алгоритм на С++ и сделать его распределенным в локальной сети. Ну после запуска остались сильно недовольны скоростью... потому проект забросили, оставив код на С++ без комментариев. Конечно можно в нем разобраться, но стоит ли?
В гугле столько разноречивой информации про Java... даже не знаю чему верить... А что вы хотели сказать по поводу скорости Java??? ![]()
Можете посоветовать выход из положения? И вообще, где найти информацию о том, насколько платные хорошие компиляторы для Фортран? А можно ли обычную вычислительную программу на Фортране сделать распределенной? Или проще написать новую??? |
||||||
|
|||||||
kemiisto |
|
||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: нет Всего: 160 |
![]()
Если я правильно понимаю распределённость:
то конечно можно. Например, GAMESS, GAUSSIAN, DALTON (это из тех QC считалок, которые я точно знаю, что написаны на FORTRAN) вроде бы распараллеливаются (с разным успехом). А иначе какой смысл их ставить на кластеры? Наверное, будет полезным почитать про MPI. А что обычно говорят? ![]() -------------------- |
||||
|
|||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Насколько я понимаю, MPI - это метод распараллеливания на разные процессоры, находящиеся на одной машине (т.е. на суперкомпьютере) В нашу задачу не входит использование многопроцессорных систем. Будет локальная сеть из обычных средних компьютеров. Вообще я находила в гугле Java-апплеты, выполняющие вычисления, касающиеся молекулярной динамики. Работают быстро ))) А насчет скорости Java я конечно читала в основном только отрицательные отзывы... Но сейчас все больше пишут, что Java почти сравнялась по производительности с С++. Не знаю, верить этому, или это просто рекламная кампания ![]() Но факт в том, что программы, написанные на Java меня лично еще никогда не подводили... А с С++ все сложнее... вот вроде есть у меня программа рабочая, но никто не может её запустить ))) Это сообщение отредактировал(а) Cross - 5.12.2008, 18:53 |
|||
|
||||
Иванофф |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 8.9.2006 Репутация: нет Всего: нет |
а зачем вам сеть из средних компьютеров. дешевле поставить один нормальный двухпроцессорный четырехядерный компьютер и получить нормальную скорость. непонятно на каком этапе вы хотите съэкономить.
|
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
понимаете... это научный проект при университете.
все сразу сделать все равно не получится, т.к. никто у нас не умеет программировать в стиле HPC. Учиться уже нет времени, т.к. кандидатская на носу - а этот проект и будет защитой ))) Каждый аспирант делает что-то свое, какую-то часть... Моя задача - сделать распределение. Все что касается многопроцессорных машин, это уже будет делаться после... Если у института будут деньги на такие компьютеры ) А пока есть только аудитория с ЛВС ))) на том и надо работать Вот так собственно обстоит дело ![]() |
|||
|
||||
kemiisto |
|
||||||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: нет Всего: 160 |
Нет, точнее, не только:
Я вот что думаю по этому поводу: хватит ли у Вас опыта писать "быстрый" код на FORTRAN. Там ведь тоже не всё так просто. Помните, лучший ЯП - тот, который программист знает лучше всего.
Думаю, имеется ввиду, что существенного опережения по скорости работы приложений C++ уже не даёт. В 2 раза, но это не так уж и критично. Что значит: не может запустить? Есть программа в исходных кодах? -------------------- |
||||||||
|
|||||||||
Иванофф |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 8.9.2006 Репутация: нет Всего: нет |
так бы сразу и написали. личный совет. разрабатывайте и отлаживайте отдельные части на разных машинах, а считайте на одной самой быстрой. добавьте ей памяти, если есть обмен поставьте диски в райд 0, иначе просто потеряете время на отладку в ЛВС.
|
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Есть исходные коды, она компилируется... но ничего не делает... Но если все равно научная руководительница недовольна скоростью и хочет переделывать... |
|||
|
||||
popovda |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 9.6.2006 Где: Москва Репутация: нет Всего: 6 |
Что касается MPI - та библиотека имеет 2 глобальных приемущества для создания распределенных интерфейсов:
1. Она кроссплатформенна (то есть не придеться сильно изменять код для др. ОС) 2 позволяет контролировать вычислительную нагрузку и создавать виртуальные топологии ЛВС, что может быть очень полезно для некоторых задач. Но есть недостатки - слабая поддержка и современных стандартов Фортран и C++. Поэтому, поскольку Вам так или иначе надо получить высокопроизводительный код, а значит понадобится коммерческий качественный компилятор. Если платформа Intel, то обратите внимание на Intel Cluster OpenMP - возможно Вам не придется и код-то сильно менять (вычислительную часть). Медленная работа может быть из-за использования большого количества виртуальных функций-членов. Что для CORBA-технологии очень вероятно. Вообще, в вычислительных задачах надо избегать позднее связывание. -------------------- С уважением, Попов Д.А. |
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Моя задача - использовать только бесплатное ПО, и компиляторы в том числе. Как решить эту проблему? |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: нет Всего: 160 |
-------------------- |
|||
|
||||
Иванофф |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 8.9.2006 Репутация: нет Всего: нет |
как научиться быстро бегать в мешке. наверно есть специальная методика. хорошо что еще не заставляют считать на бесплатных компьютерах. какая всетаки цель вашей работы? действительно что-то быстро просчитать или определить "сколько студент может прожить на стипендию" |
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Да меня то собственно они всем устраивают )))
Но это - предложенная мне диссертационная работа. ![]() Ясно что это никому не надо, учитывая обилие подобных программ на рынке, а университет все равно хочет это делать ![]() |
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Цель - защитить диссертацию ![]() Методы - использовать по возможности бесплатное ПО, и сделать так, чтобы будущему поколению аспирантов была основа для работы Кстати, не подскажите, где взять Visual Fortran ??? В Гугле не могу найти ссылку... Там только ссылка на различные компиляторы. |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: нет Всего: 160 |
Купить MS Visual Studio 2008 и Intel ® Visual Fortran Compiler. Хотя, вроде как, можно и только второе купить, там в Professional версии включена VS 2005. А когда защита и что за диссертация? -------------------- |
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Защита в следующем году.
А диссертация представляет собой оптимизацию программного комплекса для системы физико-химического моделирования свойств шлаковых расплавов. Система имеет удаленный интерфейс. Была основана на СУБД Oracle. Затем переведена на бесплатную PostgreSQL. Моя задача - заставить работать для начала хотя бы написанное в 2003 году приложение на Fortran. Потому что, как я уже говорила, написанное после вычислительное приложение на С++, не устроило научного руководителя по скорости. К тому же там все основано на XML-потоках... т.е. промежуточные результаты расчетов постоянно сбрасываются сначала в XML, потом в базу... Так что мне нужно еще оптимизировать и обмен данными. Распределение не входит в мою задачу, этим будет заниматься другой человек. Но от меня зависит выбор языка для реализации вычислительного алгоритма. Наверное остановлю выбор на Fortran... Добавлено через 14 минут и 55 секунд Кстати, а в MS Visual Studio 6.0 может быть фортран? |
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Нашла в интернете информацию о том, что на западе многие институты перешли с Фортрана на Питон. Портированы многие Фортран библиотеки. Особенно часто применяют для расчетов в химической отрасли. В НАСА для научно-моделирующих программ применяется Питон, как один из основных языков.
Кто-нибудь может прокомментировать эти данные??? |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: нет Всего: 160 |
В местных магазинах видел вот такую книжку. Оказалось, что автор тоже местный. Как видите, почти все курсы по Computational Science читаются с использованием Python в качестве ЯП. Но местные "фортранщики" скептически относятся к Python. В основном из-за скорости, по которой он существенно уступает той же Java. Это сообщение отредактировал(а) kemiisto - 8.12.2008, 15:22 -------------------- |
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Да, я нашла результаты тестирования... Там Phyton в 10 раз медленнее, чем Fortran...
В общем решила работать с Фортраном, вот только если не сложно, не могли бы вы мне разъяснить вот что: чем отличается CORBA/DCOM/RMI от MPI ??? Потому что везде, где пишут о распределенных или параллельных вычислениях, говорят о MPI, но не о CORBA например. У нас в проекте распределение было сделано с помощью CORBA. Так вот я и не пойду, без CORBA или чего-то подобного можно распределить задачу на несколько машин??? И вообще, можно ли использовать CORBA с Fortran? Что-то в интернете не найду никак И если не CORBA, тогда что? |
|||
|
||||
Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: нет Всего: 13 |
Имхо можно с тем же успехом применять C++. Использовать ли при этом MPI или нет -- зависит задачи, плюсом для вас может послужить то, чо там уже реализованы высокоуровневые примитивы обмена данными.
-------------------- |
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Сделала тест простой программы на Java, Phyton и Fortran.
Привожу код на Phyton:
Использовала Phyton 2.4 со стандартным компилятором. Fortran c интеловским компилятором, правда со старым - 7 версия Java у меня стоит из JDK 6.0 В общем результаты такие: Fortran - примерно 5 мс Java - 13 мс Phyton - 206 мс !!! ![]() Этот тест нашла на каком-то сайте... там были другие результаты. И была неверно написана функция на Phyton. Не могу оттестировать на С++, т.к. пришлось удалить Visual Studio 6.0, чтобы поставить Compaq Visual Fortran. |
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Помогите кто-нибудь с программой для тестирования фортрана.
Я ее запускала без определения точного времени, а когда подставила функцию времени, при дебаге выдается ошибка error LNK2001: unresolved external symbol _TIME Вот код:
Добавлено @ 12:26 Догадываюсь, что наверное не подключила какие-то файлы, но какие? Нигде не могу найти... Это сообщение отредактировал(а) Cross - 12.12.2008, 13:53 |
|||
|
||||
popovda |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 9.6.2006 Где: Москва Репутация: нет Всего: 6 |
Так Вы - физхимик?
![]() Что до бесплатных компиляторов - пишите под Linux - для него и Intel Fortran, и Intel C++ свободные есть. Ну а что до Питона, то в нем удобно делать GUI к проге на фортране - быстро и гибко.
Тут у Вас 2 ошибки 1. вы объявляете переменную time, а потом обращаетесь к ней как к функции - уже ошибка, т.к. внешнюю функцию, если time - функция - надо определять так
2. насколько я помню - time - не является функцией стандарта языка. Значит Вы где-то не прописали пути к библиотеке, которая её использует. Или не указали lib-файл. Причём, мне кажется, что это либо функция из Вашего пакета программ, либо вообще сторонняя функция. -------------------- С уважением, Попов Д.А. |
||||||
|
|||||||
Cross |
|
||||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Я не физхимик! Я информатик всего-лишь ) Моя задача только создать программный комплекс.
Да, спасибо за совет! Я уже нашла решение для Windows - использование CDT под Eclipse! (насколько я понимаю там реализованы адаптеры к линуксовому компилятору, дебагеру... и т.д.) Вот только проблема... установила я Photran для Eclipse... потом стала пытаться поставить CDT Eclipse, но ни одна программа на С++ не делает exe файла... Не знаю, что и делать. |
||||
|
|||||
Иванофф |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 8.9.2006 Репутация: нет Всего: нет |
Что -то я перестаю понимать в научной жизни. Вы собираетесь защититься в следующем году по теме в которой пока ничего не понимаете. Неужели с наукой у нас так тяжко. И специальность ИНФОРМАТИК. Непонятно какой комплекс вы хотите создать. На это нужен год нормальной практики, чтобы дальше хоть что-то осмысленное делать. |
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
А мне собственно не нужно ничего особенно понимать в физической химии.
Алгоритмы уже разработаны до меня. Да и сам программный комплекс. Моя задача - реструктуризация и оптимизация производительности. Это сообщение отредактировал(а) Cross - 21.12.2008, 12:39 |
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Я так и не нашла ответа на вопрос, как создать распределенное приложение на FORTRAN используя CORBA...
Нашла информацию, что есть IDL-to-FORTRAN mapping, но как его реализовывать не нахожу... Я в этом человек новый))) помогите чем сможете ![]() программа на FORTRAN 77... нужно ли ее переписывать в FORTRAN 2003 с объектами, чтобы использовать с CORBA или можно все сделать без объектов? Если да то как? Где найти информацию по этой теме? Это сообщение отредактировал(а) Cross - 21.12.2008, 17:31 |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 5 Всего: 49 |
Насколько мне известно, отображения CORBA для Fortran'а попросту не существует. Впрочем, это не так страшно, поскольку скорость работы этого изделия с языками, которые оно поддерживает, оставляет желать лучшего.
Посему общий совет. Если Вы всерьез хотите сделать все нормально (а не слепить что-нибудь сносное, отчитаться и забыть), то перебирайтесь под Linux, доводите до ума (если понадобится) программу на Фортране и пользуйтесь MPI. Это будет эффективнее, да и сложившимся в этой области программирования стандартам соответствует. |
|||
|
||||
popovda |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 9.6.2006 Где: Москва Репутация: нет Всего: 6 |
Гм... Корбой я бы всё же не рекомендовал пользоваться. Тормознуто будет сильно.... Очень сильно. Компилятора 2003 фортрана с полноценным (в рамках 2003 стандарта) ооп просто ещё нет (точнее есть - но только IBL Fortran XL для ppc64). Достаточно 95-го компилятора. Для Вашей задачи, если Вы уж решили таки кобру юзать, вместо таких костылей, как IDL2Fortran mapping использовать iso_c_binding и вызовы Corba-API из C на фортране.
-------------------- С уважением, Попов Д.А. |
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
Использование MPI возможно только под Linux???
Я читала что под Windows тоже можно использовать... в среде eclipse Подскажите, какой лучше использовать дистрибутив. Я работала только с Fedora 6.0.. |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 5 Всего: 49 |
Нет, конечно, но под Linux будет намного проще. Это обычное следствие явления "корпоративный стандарт" - подавляющее большинство людей в этой области работают на Linux, поэтому и инструментов там больше, и ответы на вопросы новичку будет найти проще. Дистрибутив - в принципе сойдет любой, но оптимальный вариант - Scientific Linux. В нем уже встроено большинство того, что нужно при распределенных вычислениях, да и работать с ним Вам будет достаточно просто - он основан на том же RedHat/Fedora. |
|||
|
||||
Cross |
|
|||
![]() информатик-аналитик ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 2.6.2006 Где: Москва Репутация: нет Всего: 1 |
А Scientific Linux можно поставить на VMWare Workstation???
|
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 5 Всего: 49 |
Хм... наверное, да. Никогда не пробовал это делать, но ничего специфического, что этому бы препятствовало, вроде нет. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Fortran | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |