|
Вопросы
|
Ответы
|
|
HP/Convex SPP-1600
|
|
|
1. Программа d.cc использует заголовочный файл complex.h . Ниже приведен текст программы и Make-файла: #include ?complex.h Makefile: Результат компиляции: Stop. Файл complex.h имеется в каталоге opt/CC/. Как грамотно его подключать и должен ли это делать каждый пользователь индивидуально в своей конфигурации или это можно сделать для всех централизованно по умолчанию? |
Вам следует добавить указание на файл заголовка в опцию компилятора или Ваш Make-file, поскольку стандартный путь к файлам заголовков для компилятора C - /usr/include, а Вы используете каталог от C++. Другая возможность - используйте при работе компилятор C++, называемый CC. Т.е. используйте любой из вариантов: |
|
2. Текст программы и Make-файла. Результат компиляции c makefile, подобным вышенаписанным:
Stop. Здесь math.h вроде бы найден, но требуется еще включение в компиляцию файла libm.a в лоб, чего явно не должно быть. Желание пользоваться еще какими-то "header'ами", по-видимому, вызовет необходимость компиляции еще каких-нибудь файлов библиотек, и пользователю трудно будет догадаться, какими. Хочется чтобы все включалось в пути, а не в Makefile. |
Поможет ключ lm, добавленный к строке запуска компилятора или в Make-файл. |
| 3. Что надо сделать, чтобы работать с комплексными переменными в C-программах? |
Лучше всего воспользоваться для своих задач компилятором CC( C++), при этом, прежде всего Вы должны настроить переменные PATH и MANPATH. Добавте в ваш файл следующие строки: При компиляции Ваших программ используйте ключ -lm
. |
| 4. Где можно прочитать, как должны быть устроены конфигурационные файлы пользователя для spp.csa.ru.( .login, .profile, .cshrc и т. д.)? Как понимать текст того, что в них написано? |
.login выполняется один раз - при входе пользователя в систему.Он написан на языке интерпретатора команд SH. .profile выполняется, если интерпретатором команд являются: SH, KSH или BASH. .cshrc - если пользователь работает с csh (C-Shell) или tcsh (рекомендую). В отличие от .login, эти файлы выполняются всякий раз при запуске интерпретатора. Заготовки всего этого добра, как водится, валяются в каталоге
/etc/skel.
Узнать свой шелл можно так: Узнать о них можно из книжек, а также из пособий. Книжки лежат в Политехе в системном отделе, а пособия лежат в Интернете: http://www.csa.ru/~il/sol_dummy Есть еще один способ: набрать команду |
| 5. Хотелось бы иметь для общего обозрения некие шаблоны конфигурационных скриптов для стандартных задач (fortran и mpi, c++ и mpi , подключение библиотек и т.д.). |
1) Добавить в конец .profile 2) Запуск компилятора для программы на MPI: |
| 6. Я работаю с фортраном f77 на суперкомпьютере SPP. Какую опцию транслятора следует задавать для того, чтобы инициализировать нулями все локальные переменные в подпрограммах? Я не нашел необходимой опции в описании по фортрану, вызываемому командой man f77 . |
К сожалению, я не нашел нужной опции компилятора для SPP 1600. В приложении HP Fortran compatibility в Language reference упоминается опция -nore, позволяющая хранить переменные статически, однако при использовании ее выполняемый модуль не строится. Локальные переменные в подпрограммах являются автоматическими, т.е. при каждом вызове создается их новая копия, а старые значения не сохраняются. Надо явно инициализировать локальные переменные при каждом вызове п/п. Использование оператора save также не позволяет сохранить локальные переменные. Но вообще-то локальные переменные неявно инициализируются нулями. |
Webmaster