- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I think the complaint is about error messages from the compiler itself, when in MP mode.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Do you see the same problem with 2024.2 ifx? We would need a sample reproducer to investigate this further.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I think it's a voluntarily buggy code in order to generate error messages.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is escalated to the development team. I agree that the behaviour should be similar to ifort in that case.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page