Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
29282 Discussions

Bufferization of stderr messages

foxtran
New Contributor II
1,546 Views

Hello!

I have tried to compile some improper source code in multiple threads, and on stderr I see something like (outputs from several instances of ifx were mixed):

ur/cheo/mxep//echr_otlm.oefk/(gc1i_4/l6wo3ok)rg:ki d/eiwrror/roMkrRd Ci#Cr6./4CM0PR6PC:RC u.CsCosPniPfaRl/uiMscRstCiiCan./gpM iRapCteCtl.ripinibepu/etsleoisun reoc/res /ompuuerlrcttei./pfml(re2c 5cd5.e8fc)(l:3a 0re8ar0tr)io:or n e #ro6rf4o 0rn6 a:#m 6eC4.o0 n6 f: l [iCIcoNtnTifAnlDgiD cRat]ti
tn      icad=intaddr(mscr+ioffs)

 
It would be nice to add bufferization for error messages to avoid this strange output when multiple threads puts something on stderr. Probably, the same issue is for stdout

ifx version:
ifx (IFX) 2024.1.0 20240308

0 Kudos
8 Replies
jimdempseyatthecove
Honored Contributor III
1,491 Views

Enclose the write/print within a critical section. Name it something like

!$OMP CRITICAL (stderr_critical)

write(...

write(...

!$OMP END CRITICAL (stderr_critical)

 

Jim Dempsey

Steve_Lionel
Honored Contributor III
1,464 Views

I think the complaint is about error messages from the compiler itself, when in MP mode.

Devorah_H_Intel
Moderator
1,337 Views

Do you see the same problem with 2024.2 ifx? We would need a sample reproducer to investigate this further.   

0 Kudos
foxtran
New Contributor II
1,253 Views

@Devorah_H_Intel ,

I did not check it with 2024.2 ifx, so, probably, it could be fixed for it.

The reproducer for ifx 2024.1 is the following bash script:

#!/usr/bin/env bash

rm -fr files
mkdir files

for i in `seq 1 100`
do

cat <<EOF > files/program_${i}.f90
progmam main
implecet nano
for i = 1, dua
enddo
end
EOF

done

for rep in `seq 1 10`
do
  for i in `seq 1 100`
  do
    ifx files/program_${i}.f90 -c -o files/program_${i}.f90.o &
  done
done

wait

Most of time, it will produce normal output, however, at the end, you will get something like:

un pf4'ngSro8Nd you.A ongnfNInftrd9ODeiaa 0'E lxmI( Noef _D2wTfsie2E)hI:/lr0N:eF per.T nI(rsofIe E o/r9FreR:gp,0Irx  rr (Eop'%aof2RreI mgo)  c'[_ru:'#t  4an I5iw.9mde'0nh ._ r 8ge=f6Irw2 n 99Doh:o =e0.Ere n>x(fN nSe
p39T# y progmam main
e)0I5eno--------^
c:(F0xtft 2I8pa:ie)E2ex nr:R:c  (gr  tSe  oe'iyr:orfrNnnr n irAgto%e#loN ar  5erOox,[o0s 'n   f8/# eef.:2p5w ro  :r0horu=( o8efon  Sg2n:rd=:yr:  , > na e( I
%tmSx fDimplecet nano
 a_yp:oE---------^
[x8ne uN  3tc%nT.e.at dI rffxi[ F=r9i n II o0l(eg.DE=re2r  ER>,s)ro=N
 /:on T'for i = 1, dua
fp re=IN----^
ore, >FAuor o
INngrfffor i = 1, dua
EOdroo:----^
R' aru   Im n('wD_#d NhE55 :AeN30I NnT.8D%O If2E 'eF9:N[ xI0 T wpE(SI.heR3yF ec )nI=nt':tE  iI aR=en'ex >xg r '
p wreNimplecet nano
eohorA---------^
cnerr Nteno#rOi  5,'noe0  gfx8ffw :p2ioho e:luen(c enne tSsd  :iy/ eo nnpIxf%gtrDp:  aoxEe [og Nc( nreTt .earIi:  mrFn =o_oIg% f8rE  =:6,Ro[> .  n
(ff'e.implecet nano
 9oN  ---------^
:0uAo= (nNf %3dO:= ) ' >[:I (
f  Dw implecet nano
i.eEh:---------^
l rNe e%=rTns  oI /[=rFep > Ixr.
#fEpo for i = 1, dua
5iReg=----^
0l cr 8e'ta=2sIim>:/'n_
 p g4implecet nano
Srw 8---------^
yoho.ngenftrne9aa  0xmeo( _xf3e2p:)fr0e ( : % [ . = =>
implecet nano
---------^
:ir.c lofteer9irs,0nr/ (g3opf )rrfoo: oiun #glnee5red r0as or8m/Ifo2_pD:r:6rE   9S.oN(#yfgT 5n90rI:0t(aF 8a3mI%2x)_E : :8R[ e r3  Ser.'.yrofI nrr,9'=to r0  af (w=xo#3h> u5)e
en0:nfor i = 1, dua
rd8  ----^
r 2eeoI:rxr rDp,SoEe yrNcfn Ttot#Iiua5Fnnx0compilation aborted for files/program_14.f90 (code 1)
Igcompilation aborted for files/program_41.f90 (code 1)
d 8E  e2RoIr: nDr 'eEoI' SNyr oTn,wfItFa h:Ixfe E on(Reu   rne:'rIdx o' p%r Ie ,wDc[ hfEt eoNi.nuTn  nIg=edF  x Ion=pIEe>eDR o
cE ffor i = 1, dua
tN': ----^
iTI(nI' gF : Iow Enh%eRe n  [ 'oIf e': .x w p=e(h c e=t>i
:nnfor i = 1, dua
  %g----^
e  x[op ne.ec  t=oi fn=:g>
(for i = 1, dua
o ----^
n:e  %o f[:  .(  =:  =%>


I did not notice the same problem for ifort

0 Kudos
jimdempseyatthecove
Honored Contributor III
1,213 Views

Please correct me if I am wrong:

I am unaware that ifx Fortran accepts non-English keywords.

progmam instead of program

impelecet instead of implicit

nano instead of none

the undeclared variable "dua" in a supposedly implicit none program

 

Jim Dempsey

 

Also, it appears you pasted Unicode text as text into this forum.

 

 

0 Kudos
GVautier
New Contributor III
1,202 Views

I think it's a voluntarily buggy code in order to generate error messages.

0 Kudos
foxtran
New Contributor II
1,134 Views

@Devorah_H_Intel, The same issue is for the latest version of ifx.

@jimdempseyatthecove, you are welcome to provide a valid source code that generates error messages during compilation stage

0 Kudos
Igor_V_Intel
Moderator
1,090 Views

It is escalated to the development team. I agree that the behaviour should be similar to ifort in that case.


0 Kudos
Reply