ok, so I thought about it a bit, and while I am still baffled by the
actual outcome and the missing symbol (for the main reason that the
function of the fcoll component is being called from the ompio module,
so the function of the ompio that was called from the fcoll component is
guaranteed to be loaded, and does have the proper OMPI_DECLSPEC), I will
do some restructuring of the code to handle that.
As an explanation on why there are so many functions in ompio that are
being called from the sub-frameworks directly, ompio is more or less the
glue between all the other frameworks, and contains a lot of the code
that is jointly used by the fbtl, fcoll and the sharedfp components (fs
to a lesser extent as well).
Before I start to move code around however, just want to confirm two things:
1. I can move some of functionality of ompio to the base of various
frameworks (fcoll, fbtl and io). Just want to confirm that this will
work, e.g. I can call without restrictions a function of the fcoll base
from an fbtl or the io component.
2. I will have to extend the io framework interfaces a bit ( I will try
to minimize the number of new function as much as I can), but those
function pointers will be NULL for ROMIO. Just want to make sure this is
ok with everybody.
Thanks
Edgar
On 11/25/2014 11:43 AM, Ralph Castain wrote:
On Nov 25, 2014, at 9:36 AM, Edgar Gabriel <gabr...@cs.uh.edu> wrote:
On 11/25/2014 11:31 AM, Ralph Castain wrote:
On Nov 25, 2014, at 8:24 AM, Edgar Gabriel <gabr...@cs.uh.edu
<mailto:gabr...@cs.uh.edu>> wrote:
On 11/25/2014 10:18 AM, Ralph Castain wrote:
Hmmm…no, nothing has changed with regard to declspec that I know
about. I’ll ask the obvious things to check:
* does that component have the proper include to find this function?
Could be that it used to be found thru some chain, but the chain is
now broken and it needs to be directly included
header is included, I double checked.
* is that function in the base code, or down in a component? If the
latter, then that’s a problem, but I’m assuming you didn’t make that
mistake.
I am not sure what you mean. The function is in a component, but I am
not aware that it is illegal to call a function of a component from
another component.
Of course that is illegal - you can only access a function via the
framework interface, not directly. You have no way of knowing that the
other component has been loaded. Doing it directly violates the
abstraction rules.
well, ok. I know that the other componen has been loaded because that component
triggered the initialization of these sub-frameworks.
I think we’ve seen that before, and run into problems with that approach (i.e.,
components calling framework opens).
I can move that functionality to the base, however, none of the 20+ functions
are required for the other components of the io framework (i.e. ROMIO). So I
would basically add functionality required for one component only into the base.
Sounds like you’ve got an abstraction problem. If the fcoll component requires
certain functions from another framework, then the framework should be exposing
those APIs. If ROMIO doesn’t provide them, then it needs to return an error if
someone attempts to call it.
You are welcome to bring this up on next week’s call if you like. IIRC, this
has come up before when people have tried this hard links between components.
Maybe someone else will have a better solution, but is just seems to me like
you have to go thru the framework to avoid the problem.
Nevertheless, I think the original question is still valid. We did not see this
problem before, but it is now showing on all of our platforms, and I am still
wandering that is the case. I *know* that the ompio component is loaded, and I
still get the error message about the missing symbol from the ompio component.
I do not understand why that happens.
Probably because the fcoll component didn’t explicitly link against the ompio
component. You were likely getting away with it out of pure luck.
Thanks
Edgar
Thanks
Edgar
On Nov 25, 2014, at 8:07 AM, Edgar Gabriel <gabr...@cs.uh.edu
<mailto:gabr...@cs.uh.edu>>
wrote:
Has something changed recently on the trunk/master regarding
OMPI_DECLSPEC? The reason I ask is because we get now errors about
unresolved symbols, e.g.
symbol lookup error:
/home/gabriel/OpenMPI/lib64/openmpi/mca_fcoll_dynamic.so: undefined
symbol: ompi_io_ompio_decode_datatype
and that problem was not there roughly two weeks back the last time
I tested. I did verify that the the function listed there has an
OMPI_DECLSPEC before its definition.
Thanks Edgar -- Edgar Gabriel Associate Professor Parallel Software
Technologies Lab http://pstl.cs.uh.edu Department of Computer
Science University of Houston Philip G. Hoffman Hall, Room
524 Houston, TX-77204, USA Tel: +1 (713) 743-3857
Fax: +1 (713) 743-3335
_______________________________________________ devel mailing list
de...@open-mpi.org <mailto:de...@open-mpi.org> Subscription:
http://www.open-mpi.org/mailman/listinfo.cgi/devel Link to this
post:
http://www.open-mpi.org/community/lists/devel/2014/11/16332.php
_______________________________________________ devel mailing list
de...@open-mpi.org <mailto:de...@open-mpi.org>Subscription:
http://www.open-mpi.org/mailman/listinfo.cgi/develLink to this post:
http://www.open-mpi.org/community/lists/devel/2014/11/16333.php
--
Edgar Gabriel
Associate Professor
Parallel Software Technologies Lab http://pstl.cs.uh.edu
<http://pstl.cs.uh.edu/>
Department of Computer Science University of Houston
Philip G. Hoffman Hall, Room 524 Houston, TX-77204, USA
Tel: +1 (713) 743-3857 Fax: +1 (713) 743-3335
_______________________________________________
devel mailing list
de...@open-mpi.org <mailto:de...@open-mpi.org>
Subscription:http://www.open-mpi.org/mailman/listinfo.cgi/devel
Link to this
post:http://www.open-mpi.org/community/lists/devel/2014/11/16334.php
_______________________________________________
devel mailing list
de...@open-mpi.org
Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
Link to this post:
http://www.open-mpi.org/community/lists/devel/2014/11/16336.php
--
Edgar Gabriel
Associate Professor
Parallel Software Technologies Lab http://pstl.cs.uh.edu
Department of Computer Science University of Houston
Philip G. Hoffman Hall, Room 524 Houston, TX-77204, USA
Tel: +1 (713) 743-3857 Fax: +1 (713) 743-3335
_______________________________________________
devel mailing list
de...@open-mpi.org
Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
Link to this post:
http://www.open-mpi.org/community/lists/devel/2014/11/16338.php
_______________________________________________
devel mailing list
de...@open-mpi.org
Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
Link to this post:
http://www.open-mpi.org/community/lists/devel/2014/11/16339.php
--
Edgar Gabriel
Associate Professor
Parallel Software Technologies Lab http://pstl.cs.uh.edu
Department of Computer Science University of Houston
Philip G. Hoffman Hall, Room 524 Houston, TX-77204, USA
Tel: +1 (713) 743-3857 Fax: +1 (713) 743-3335