<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>24645</bug_id>
          
          <creation_ts>2010-11-26 13:07:20 +0300</creation_ts>
          <short_desc>Ошибка в реализации для F90</short_desc>
          <delta_ts>2010-11-29 12:55:06 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>openmpi-devel</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Const">const</reporter>
          <assigned_to name="Andrew Savchenko">bircoph</assigned_to>
          <cc>bircoph</cc>
    
    <cc>dans</cc>
    
    <cc>real.altlinux.org</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>115713</commentid>
    <comment_count>0</comment_count>
    <who name="Const">const</who>
    <bug_when>2010-11-26 13:07:20 +0300</bug_when>
    <thetext>При попытке собирать любой mpi-код на Fortran-90 (минимальный пример:
program test
 use mpi
 integer :: id, err
 call MPI_Start(err)
 call MPI_Comm_rank(MPI_COMM_WORLD,id,err)
 print *, id
 call MPI_Finalize(err)
end
)
получаем сообщение об ошибке вида
$ mpif90 test.f90 
test.f90:2.7:

use mpi
       1
Fatal Error: Wrong module version &apos;0&apos; (expected &apos;4&apos;) for file &apos;mpi.mod&apos; opened at (1)

Если вместо подключения модуля mpi.mod использовать mpif.h («стиль» F77), то работает, но некомильфо, ибо надо знать это и переписывать код имеющийся.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115715</commentid>
    <comment_count>1</comment_count>
    <who name="Denis Pynkin">dans</who>
    <bug_when>2010-11-26 13:45:36 +0300</bug_when>
    <thetext>Буду на выходных разбираться.
у меня ваш пример вот так обрабатывается для mpif90:
mpif90 f.f90 
f.f90:4.20:

 call MPI_Start(err)
                    1
Error: There is no specific subroutine for the generic &apos;mpi_start&apos; at (1)
f.f90:9.1:

)
 1
Error: Invalid character in name at (1)

и совпадает с вашим, при использовании mpif77

версия openmpi та, которая в сизифе сейчас?
к сожалению, с фортраном я не работаю, возможно попрошу помощи</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115717</commentid>
    <comment_count>2</comment_count>
    <who name="Denis Pynkin">dans</who>
    <bug_when>2010-11-26 13:57:36 +0300</bug_when>
    <thetext>&gt; Если вместо подключения модуля mpi.mod использовать mpif.h («стиль» F77), то
&gt; работает, но некомильфо, ибо надо знать это и переписывать код имеющийся.

странно, попробуйте переложить mpi.mod из /usr/lib/openmpi/lib в /usr/lib/openmpi/include
у меня после этого осталась только ошибка, которую я продемонстрировал выше. а вот как с ней бороться с наскока не разберусь</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115718</commentid>
    <comment_count>3</comment_count>
    <who name="Const">const</who>
    <bug_when>2010-11-26 14:05:48 +0300</bug_when>
    <thetext>&gt; mpif90 f.f90 
&gt; f.f90:4.20:
&gt; 
&gt;  call MPI_Start(err)
&gt;                     1
&gt; Error: There is no specific subroutine for the generic &apos;mpi_start&apos; at (1)
&gt; f.f90:9.1:
&gt; 
&gt; )
&gt;  1
&gt; Error: Invalid character in name at (1)
&gt; 
&gt; и совпадает с вашим, при использовании mpif77

хм. Странно.
Если я заменяю «use mpi» на «include &quot;mpif.h&quot;» (тт самый стиль f77),
то прокатывает компиляция.

Собрать же посредством f77 этот код нневозможно: во-первый, оператор USE в f77 отсутствует как класс, во-вторых, код записан в свободном формате, которого также не было в f77.
 
&gt; версия openmpi та, которая в сизифе сейчас?
&gt; к сожалению, с фортраном я не работаю, возможно попрошу помощи

Несколькодневной давности:
$ rpm -qa openmpi
openmpi-1.4.3-alt2
и, еслм важно:
$ rpm -qa gcc4.5-fortran
gcc4.5-fortran-4.5.1-alt6

Вечером обновлю зеркало и завтра попробую освежить установку.
На всякий случай, для скорости, мой JID: const@jabber.ru
Бо сам очень сильно заинтересован в адекватной работе.

UPD:
Подумалось, что в Вашем случае mpi.mod цепляется нормально, но он «пустой», то есть там нет описания ф-ции MPI_Start, оттого и ошибка лезет такая.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115720</commentid>
    <comment_count>4</comment_count>
    <who name="Const">const</who>
    <bug_when>2010-11-26 14:06:50 +0300</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; &gt; Если вместо подключения модуля mpi.mod использовать mpif.h («стиль» F77), то
&gt; &gt; работает, но некомильфо, ибо надо знать это и переписывать код имеющийся.
&gt; 
&gt; странно, попробуйте переложить mpi.mod из /usr/lib/openmpi/lib в
&gt; /usr/lib/openmpi/include
&gt; у меня после этого осталась только ошибка, которую я продемонстрировал выше. а
&gt; вот как с ней бороться с наскока не разберусь

У меня не срабатывает такой подход.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115747</commentid>
    <comment_count>5</comment_count>
    <who name="Denis Pynkin">dans</who>
    <bug_when>2010-11-27 01:01:29 +0300</bug_when>
    <thetext>Появилось время разобраться.
1. Вы _абсолютно_ уверены в правильности тестовой программы? mpi_start - это не инициализация mpi. наверное там должно быть MPI_Init ? и если скобку закрывающую в конце убрать, то все начинает компилироваться и запускаться.
2. посмотрите пожалуйста,  примеры из пакета openmpi-openmpi-examples - там есть минимальный пример: /usr/share/doc/openmpi-openmpi-examples-1.4.3/examples/hello_f90.f90

PS а моя ошибка была вызвана тем, что стоял openmpi не из репозитория, а тестовая локальная сборка %)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115751</commentid>
    <comment_count>6</comment_count>
    <who name="real@altlinux.org">real.altlinux.org</who>
    <bug_when>2010-11-27 07:58:26 +0300</bug_when>
    <thetext>Подтверждаю:

1. Fatal Error: Wrong module version &apos;0&apos; (expected &apos;4&apos;) for file &apos;mpi.mod&apos; opened
at (1)
не воспроизводится. Наверно, потому, что у меня openmpi свежий сизифный.

2. MPI_Start - так не бывает, бывает MPI_Init.

Так что, видимо, это надо в FIXED - NOTABUG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115755</commentid>
    <comment_count>7</comment_count>
    <who name="Const">const</who>
    <bug_when>2010-11-27 10:41:04 +0300</bug_when>
    <thetext>(В ответ на комментарий №6)

&gt; 1. Fatal Error: Wrong module version &apos;0&apos; (expected &apos;4&apos;) for file &apos;mpi.mod&apos;
&gt; opened
&gt; at (1)
&gt; не воспроизводится. Наверно, потому, что у меня openmpi свежий сизифный.

$ rpm -qa openmpi
openmpi-1.4.3-alt2

 
&gt; 2. MPI_Start - так не бывает, бывает MPI_Init.
&gt; 
&gt; Так что, видимо, это надо в FIXED - NOTABUG.

Описался, да.
Но факт остаётся и на правильном коде:
с «use mpi» даёт ошибку, тогда как «include &quot;mpif.h&quot;» проглатывает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115756</commentid>
    <comment_count>8</comment_count>
    <who name="real@altlinux.org">real.altlinux.org</who>
    <bug_when>2010-11-27 10:51:39 +0300</bug_when>
    <thetext>Это похоже на какой-то local misconfiguration, ибо уже два человека Ваш пример попробовало, и всё скомпилировалось без ошибок.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115758</commentid>
    <comment_count>9</comment_count>
    <who name="Const">const</who>
    <bug_when>2010-11-27 11:10:10 +0300</bug_when>
    <thetext>(В ответ на комментарий №8)
&gt; Это похоже на какой-то local misconfiguration, ибо уже два человека Ваш пример
&gt; попробовало, и всё скомпилировалось без ошибок.

То есть, у Вас пример с «use mpi» собирается, если описку MPI_Start исправить?

Тогда возникает вопрос, «куды рыть?»
Ибо ситуация у меня повторяется на второй машине уже: ставится в минимальном виде бета Кентавра, обновляется до текущего Сизифа, доустанавливается openmpi (компиляторы вытягивает сам), настраивается mpi-selector… Чего не хватает в этой цепочке?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115759</commentid>
    <comment_count>10</comment_count>
    <who name="real@altlinux.org">real.altlinux.org</who>
    <bug_when>2010-11-27 11:20:18 +0300</bug_when>
    <thetext>Не могу даже предположить.

mpi-selector --set openmpi
source /usr/lib/openmpi/bin.sh

делали? Или у Вас просто в PATH воткнут /usr/lib/openmpi/bin?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115760</commentid>
    <comment_count>11</comment_count>
    <who name="real@altlinux.org">real.altlinux.org</who>
    <bug_when>2010-11-27 11:21:40 +0300</bug_when>
    <thetext>пардон, описка во второй команде, надо так:

source /usr/lib/openmpi/bin/mpivars.sh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115761</commentid>
    <comment_count>12</comment_count>
    <who name="Const">const</who>
    <bug_when>2010-11-27 11:51:25 +0300</bug_when>
    <thetext>(В ответ на комментарий №10)
&gt; Не могу даже предположить.
&gt; 
&gt; mpi-selector --set openmpi
&gt; source /usr/lib/openmpi/bin.sh
&gt; 
&gt; делали? Или у Вас просто в PATH воткнут /usr/lib/openmpi/bin?

mpi-selector --system --set openmpi
от рута делал и перезаходил пользователем.

Сейчас также проверил с source из следующего письма — результат тот же.

На всякий случай:
$ set |grep mpi
LD_LIBRARY_PATH=/usr/lib/openmpi/lib:
MANPATH=/usr/lib/openmpi/man:/usr/local/share/man:/usr/share/man/ru:/usr/share/man:/usr/X11R6/man:/usr/local/man
PATH=/usr/lib/kde4/bin:/usr/lib/kde4bin:/usr/lib/openmpi/bin:/home/const/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/X11R6/bin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115766</commentid>
    <comment_count>13</comment_count>
    <who name="Denis Pynkin">dans</who>
    <bug_when>2010-11-27 16:29:33 +0300</bug_when>
    <thetext>(В ответ на комментарий №11)
2Женя,ради интереса - у тебя gfortran --version какой показывает? 

в общем подтверждается бага, но только на компиляторе версии 4.5. На 4.4 - работает.
С примерами из openmpi-examples тоже повторяется.

Сейчас попробую пересобрать с с использованием 4.5 и, если все нормально, то закину в сизиф.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115767</commentid>
    <comment_count>14</comment_count>
    <who name="Const">const</who>
    <bug_when>2010-11-27 17:01:47 +0300</bug_when>
    <thetext>(В ответ на комментарий №13)
&gt; (В ответ на комментарий №11)
&gt; 2Женя,ради интереса - у тебя gfortran --version какой показывает? 
&gt; 
&gt; в общем подтверждается бага, но только на компиляторе версии 4.5. На 4.4 -
&gt; работает.
&gt; С примерами из openmpi-examples тоже повторяется.
&gt; 
&gt; Сейчас попробую пересобрать с с использованием 4.5 и, если все нормально, то
&gt; закину в сизиф.

Денис, я думал о компиляторе, но решил, что раз пакет за собой gcc4.5 тянет, то им и собран… В принципе, мне не сложно на 4.4 откатиться, но проверить теперь только в понедельник смогу.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115768</commentid>
    <comment_count>15</comment_count>
    <who name="Denis Pynkin">dans</who>
    <bug_when>2010-11-27 17:10:24 +0300</bug_when>
    <thetext>(В ответ на комментарий №14)

&gt; Денис, я думал о компиляторе, но решил, что раз пакет за собой gcc4.5 тянет, то
&gt; им и собран… 
а я просто не знал про фортран и его зависимость по версиям до этой баги ;-)
в сизифе был глобальный переход на новую версию компилятора - вот и вылезло.

&gt; В принципе, мне не сложно на 4.4 откатиться, но проверить теперь
&gt; только в понедельник смогу.
откатываться не надо - я забросил новую версию.
в понедельник сделайте dist-upgradе</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115769</commentid>
    <comment_count>16</comment_count>
    <who name="real@altlinux.org">real.altlinux.org</who>
    <bug_when>2010-11-27 18:18:42 +0300</bug_when>
    <thetext>Денису: чёрт, оказывается, у меня дома до сих пор
GNU Fortran (GCC) 4.4.5 20101112 (ALT Linux 4.4.5-alt3)

Обновил до 4.5.1, ошибка подтвердилась.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115853</commentid>
    <comment_count>17</comment_count>
    <who name="Const">const</who>
    <bug_when>2010-11-29 12:55:06 +0300</bug_when>
    <thetext>(В ответ на комментарий №15)
&gt; (В ответ на комментарий №14)
&gt; 
&gt; &gt; Денис, я думал о компиляторе, но решил, что раз пакет за собой gcc4.5 тянет, то
&gt; &gt; им и собран… 
&gt; а я просто не знал про фортран и его зависимость по версиям до этой баги ;-)
&gt; в сизифе был глобальный переход на новую версию компилятора - вот и вылезло.
&gt; 
&gt; &gt; В принципе, мне не сложно на 4.4 откатиться, но проверить теперь
&gt; &gt; только в понедельник смогу.
&gt; откатываться не надо - я забросил новую версию.
&gt; в понедельник сделайте dist-upgradе

Всё нормально теперь, спасибо! Зарываю ошибку.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>