Community
cancel
Showing results for 
Search instead for 
Did you mean: 
77 Views

multiple xiar processes stomp on each others intermediate files

Hello,
We are having trouble running 2 xiar processes in the same directory simultaneously with overlapping files. Please see the following example.
$ rm *.a
$ make CC=icc xbuild -j1
xiar cr locktree_linear.a idlth.o lth.o rth.o locktree.o
xiar: executing 'ar'
xiar cr locktree_tlog.a idlth.o lth.o rth.o locktree_nooverlap.o
xiar: executing 'ar'
cp locktree_tlog.a locktree.a
$ rm *.a
$ make CC=icc xbuild -j2
xiar cr locktree_linear.a idlth.o lth.o rth.o locktree.o
xiar cr locktree_tlog.a idlth.o lth.o rth.o locktree_nooverlap.o
xiar: executing 'ar'
xiar: executing 'ar'
ar: idlth.ilo: No such file or directory
make: *** [locktree_tlog.a] Error 1
0 Kudos
5 Replies
Brandon_H_Intel
Employee
77 Views

Hi Prohaska,
I was able to create test case that reproduces this, and I've submitted a problem report to the driver development team here. I don't have any good workarounds at this point other than doing the archiving in a separate step that you do with -j1.
I'm going to move this thread (maintaining a pointer here) to the Intel C++ Compiler forum since this is really a compiler issue and not a Cilk Plus issue.
aazue
New Contributor I
77 Views

Hi
create simple Makefile where could be used
make --jobs=(2 or more)
i think not judicious to use two sides shared simultaneous build
ipo side have use already is internal simultaneous process.
Large program give catastrophic consumption with this way. result is
only the time build could be increased.
Sometime swap disk full run infinite in round.
but maybe, you have probably an reason that justify it required.
Regards

BradleyKuszmaul
Beginner
77 Views

I haven't seen much to support bustaf's ideas that icc uses multiple processes.
Since I have a big machine (more than 10 cores), I'd like to see speedup while running a big parallel make.
Dale_S_Intel
Employee
77 Views

If I understand correctly, Bustaf was referring to the parallel facilitiy in Gnu Make, which is independent of the compiler you're using. In other words, it's not icc that's using multiple processes but make, though each of those processes may be running icc. I've used make -j N for values of N from 2 to 16 with success. If you're using Make for your build and you have 10 cores available, you could try adding -j 10 (or maybe even 15 or 20), but as Bustaf points out it may take a lot of memory. If your project is big or some individual files are big, then the available memory may be your limiting factor.
Dale
Brandon_H_Intel
Employee
77 Views

This issue with xiar is resolved in the 12.1 compiler that's available with C++ Composer XE 2011 update 8. Let me know if you have any problems or questions.
Reply