- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I now see that libicaf.dll (from libicaf.lib) is necessary to run a coarry executable. The exe runs on my build machine but not on others -- it asks for libicaf.ddl. What is required to add to or modify the link so that the exe is portable? I'm in Studio 2010.
Thanks,
David
Link Copied
11 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You will need libicaf.dll - this is not available as a static library. You will probably also need the Intel MPI DLLs.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve,
If I put a very simple coarray executable on a machine other than my build machine, it reports that it needs libicaf.dll and impimt.dll. If I put those two dlls on the other machine the coarray executable loads but issues an error message:
SearchPath ERROR_code=2
I then get an error window from the Visual C++ Runtime Library (?). Any ideas?
You mentioned that I might need MPI dlls. The exe isn't asking for those, but is that the problem. If so, what/where are they? Is there a list available?
David
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You have the Intel MPI DLL there, impimt.dll.
Is your program linked otherwise to static libraries? What does Dependency Walker say on your executable? libicaf.dll depends on impimt.dll, but that doesn't depend on any other DLLs.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve,
I'm not specifying any special/additional libraries when I link.
Dependency Walker reports that the simple coarray exe is missing IESSHIMS.dll. But it reports that on any 'ol exe that I have. If I understand it correctly, that's only something for protected mode IE (I don't use IE). So, that doesn't seem to be related to the error. D.W. does show libicaf.dll and imprimt.dll as dependent.
David
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Did you do this on the target system? You are correct that the IESHMS.DLL can be ignored.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve,
Yes, I ran DependencyWalker against the exe on the target system. It's a Dell laptop, with Win7. Your processor analysis code reports 1 chip with 2 physical cores.
To try and make sure this isn't being caused by my code, I compiled and linked the tiny sample coarray code that is put in the "Samples" folder when the compiler is installed/updated. As you may recall, it simply writes "Hello from image" x to the screen. DependencyWalker reports nothing missing (other than IESHMS.dll) but attempting to execute causes the same error:
SearchPath ERROR_code=2
It executes without a problem on the build machine. Are there search paths that are set by the installer that would not (necessarily) be set on another system?
David
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'll have to ask - this is not something I have seen before.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve,
An news on this issue? I'm getting heat from "up above" about having spent resources developing coarray code, yet not being able to provide it to customers.
David
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sorry, not yet. I am out of the office this week (at IDF), but I will see if I can get the answer for you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi David -
Did you install the 'redist' kit on your target system? For coarrays, we need to have [at least] a subset of MPI available, even beyond the impimt.dll.
The very first thing your program does is to invoke mpiexec on itself, so if it can't find mpiexec, you could get this error.
In fact, I was able to reproduce this :
Create process failed ERROR_code=2
by "hiding" my copy of mpiexec.exe
-- Lorri
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Lorri,
No I did not -- surely that is the problem! We have never had to provide that for external users of our Fortran-compiled software in the past. But, apparently, we'll need to do that if we're going to distribute coarray programs.
Many thanks for you help.
David

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page