Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Problem with /MP option

Lingfeng_C_Intel
Employee
468 Views
I met an issue during compiling and building a project:
when using the /MP option for my project, the compiler starts several compilation threads at the same time, which is quite right.
The problem is, that xilink doesn't wait for the last compilation jobs to be finished but is started when the first job is finished, always resulting in linking errors because some of the OBJ files are still missing.

How to set up config to avoid this issue?

Best regards
Wise
12/22/2009
0 Kudos
6 Replies
aazue
New Contributor I
468 Views
Quoting - (Intel)
I met an issue during compiling and building a project:
when using the /MP option for my project, the compiler starts several compilation threads at the same time, which is quite right.
The problem is, that xilink doesn't wait for the last compilation jobs to be finished but is started when the first job is finished, always resulting in linking errors because some of the OBJ files are still missing.

How to set up config to avoid this issue?

Best regards
Wise
12/22/2009
Hi
How many number you have (/MP[:n])
This problem exist also some times with option --jobs of Make (Unix)
Test with several value (increase) if same make single and drink an coffee for wait time ...
Kind regards
0 Kudos
Lingfeng_C_Intel
Employee
468 Views

Thanks, we use default value for /MP, and let me try using several value.

regards,
Wise
0 Kudos
Lingfeng_C_Intel
Employee
468 Views
I test it using different value with /MP, but failed again. and meanwhile, /MP:1 option will create 2 threads, sounds it not right.

Wise
0 Kudos
aazue
New Contributor I
468 Views
Quoting - (Intel)
I test it using different value with /MP, but failed again. and meanwhile, /MP:1 option will create 2 threads, sounds it not right.

Wise
Hi
Do not use this option better is very difficult to control or change order link process dependency.
/:1 make 2 thread is nomal i think you have more that 1 core in your machine or 0 counted 1.
Have you removed old objects *.o resulting precedent build before the new tests ?
Kind regards
0 Kudos
Lingfeng_C_Intel
Employee
468 Views

Thanks,
Do you think old objects *.owill impact the new tests? Sounds MSVC has no issue.

Thanks,
Wise
0 Kudos
aazue
New Contributor I
468 Views
Quoting - (Intel)

Thanks,
Do you think old objects *.o will impact the new tests? Sounds MSVC has no issue.

Thanks,
Wise
Hi
About removing *.o before rebuild is required with make Unix
(make distclean or make clean) but with your O/S I can not certify just an
theoretically supposition technically justified.
I have request some friends(MSCV) but actually no answer.
With small machine when i instruct several asynchronous tasks same --job=16
I receive always advertisement that some object anterior not ready.
Better that you hear sound MSCV probably
largely better experience that me in this O/S.

Just for inform using make (Unix) with --job is very important this
option can reduct time /5 or greater sometime.
Good luck for an better other possible solution (that an coffee for waiting ).
Kind regards
0 Kudos
Reply