- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- « Previous
-
- 1
- 2
- Next »
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There is one other issue related to -ipo that I found. Essentially, when you use -ipo some functions get inlined everywhere they are called in the 'python' executable, so the compiler is removing the original body. Unfortunately some of the shared libs depend on some of these functions, causing problems with a lot of loadable modules. I don't have a workaround for this yet, so for now you should avoid -ipo, but I'll work with the developers to get thsi fixed.
Thanks!
Dale
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, essentially. The problem comes about not from the inlining itself, but from the fact after inlining everywhere in the "python" executable, it sees no calls to the function and therefore eliminates it. The use of the -export-dynamic switch at link time is supposed to prevent this. When it's fixed, it should still do the inlining but leave the symbol intact and dynamically visible.
I'll post here when a fix for that is available, in the meantime you should be able to build without -ipo. If you want to use "-fast" without "-ipo", see "icc -help" for the definition of "-fast" and you can use those options explicitly for now, leaving out "-ipo".
Dale
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
icc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes Parser/acceler.o Parser/grammar1.o Parser/listnode.o Parser/node.o Parser/parser.o Parser/parsetok.o Parser/bitset.o Parser/metagrammar.o Parser/firstsets.o Parser/grammar.o Parser/pgen.o Objects/obmalloc.o Python/mysnprintf.o Parser/tokenizer_pgen.o Parser/printgrammar.o Parser/pgenmain.o -lresolv -ldl -lutil -o Parser/pgen
Parser/pgenmain.o: In function `main':
Parser/pgenmain.c:(.text+0x2c): undefined reference to `__kmpc_begin'
make: *** [Parser/pgen] Error 1
Did you add openmp code to python? I don't see any omp pragmas doing a quick search myself, so I don't think there's any point to having -openmp on the command line.
What worked for me was just setting CFLAGS to "-xHOST -O3 -no-prec-div -static", but as you said you may need to set fp-model appropriately for your needs. If I were you I'd start with -O2 or -O3 and work up from that, rather than having a long list of options that you think you might need. Then with each change (if it works) measure the effect to see if it matters. If it doesn't work, please let us know so we can investigate it. If it does work and it makes a difference, that would also be useful information.
I must confess I don't know exactly how the fp-model setting would affect calculations in python. Are floating point calculations simply passed to C functions? If so then I can see where it could affect the results you get when running a python program that does fp calculation, but it would be good to verify the effects with some fp test suite of python code. If you can illuminate me on that it would be appreciated.
Thanks!
Dale
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks!
Dale
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dale
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dale
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dale
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Does anyone else know if maybe there's some other way I should be setting CFLAGS for the module buillds?
Thanks!
Dale
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
./configure --with-gcc=icc--with-cxx-main=icc\
--prefix=/home/user/python\
OPT="-O3 -xHost"
./configure --with-gcc=icc--with-cxx-main=icpc\
--prefix=/home/user/python\
OPT="-O3 -xHost"
./configure --with-computed-gotos --without-gcc CC=icc CXX=icpc CCFLAGS="-O3"\
--prefix=/home/user/python
After configuring the installation I type make install and everything goes ok, at least no error messages appear. Nonetheless I still cannot get Python to be built with the Intel compiler.... here's what I get when I run the executable:
Python 2.6.2 (r262:71600, May 27 2011, 11:50:43)
[GCC 4.4.5] on linux2
When I should be getting something like this:
Python 2.6.2 (r262:71600, Jun 30 2010, 19:36:03)
[GCC Intel C++ gcc 4.1 mode] on linux2
Do you have any ideas about what I'm doing wrong. Thanks in advance,
Csar.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Complete Python Programming For Beginners Step-by-Step – OOPS, Loops, Functions, Python Libraries, Exceptions & More!
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- « Previous
-
- 1
- 2
- Next »