close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 14 years ago

Last modified 12 years ago

#1233 accepted defect

[TolIpopt] Error de enlace de libipopt39 en linux

Reported by: Víctor de Buen Remiro Owned by: Jorge
Priority: highest Milestone: TOL Packages
Component: Math Version: head
Severity: blocker Keywords: TolIpopt
Cc: Humberto Carralero, Pedro Gea

Description (last modified by Víctor de Buen Remiro)

Al intentar correr el test de depuración de TolIpopt en linux me encuentro con que ni siquiera enlaza dinámicamente:

/usr/local/tol-gcc-release/bin/tolcon: symbol lookup error:
/home/toldevel/tol-devel/OfficialTolArchiveNetwork/IpoptCore
/Linux_x86_32/libipopt39.so: undefined symbol: MPI_Init

En esta página hablan de problemas similares pero yo no entiendo nada


Change History (7)

comment:1 Changed 14 years ago by Víctor de Buen Remiro

Description: modified (diff)

comment:2 Changed 14 years ago by Víctor de Buen Remiro

Description: modified (diff)

comment:3 Changed 14 years ago by Jorge

Status: newaccepted

He probado en key28. Antes he recompilado TOL y TOLTCL para generar libtol.so. En ese entorno he podido cargar IpoptCore invocando

/usr/local/tol-gcc-release/bin/tolcon -c"#Require IpoptCore"

como se puede ver en la salida

TRACE Time = 2011/06/01 00:18:27	Cores = 398396

Compiling command line argument -c :
#Require IpoptCore

Including /home/toldevel/.tol/TolPackage/1.1/Client/VersSyncInfo.oza
[IpoptCore::StartActions] Loading library /home/toldevel/.tol/TolPackage/1.1/Client/IpoptCore.3.9/Linux_x86_32/libipopt39.so -> OK
Loaded package IpoptCore.3.9

comment:4 Changed 13 years ago by Jorge

En [3842] se introduce un cambio relacionado con este ticket. El ticket #1374 es el mismo que este aunque reportado desde un ubuntu 9.04

comment:5 Changed 13 years ago by Jorge

Parece ser un tema relacionado con el uso RTLD_GLOBAL, hay algo relacionado en http://www.mail-archive.com/libtool@gnu.org/msg08942.html

comment:6 Changed 12 years ago by Jorge

Cc: Humberto Carralero Pedro Gea added

Este error puede afectar a la inicialización de una estimación basada en BysMcmc, para evitar que salte este error podemos indicar a BysMcmc que use Ipopt como último recurso en la búsqueda de los valores iniciales. Desde MMS esto se hace así:

Real est::GetStrategy(?)::SetSetting( "bsr.iniVal.try.givenByUser", 1 );
Real est::GetStrategy(?)::SetSetting( "bsr.iniVal.try.cnstrMLE", 2 );
Real est::GetStrategy(?)::SetSetting( "bsr.iniVal.try.zero", 3 );
Real est::GetStrategy(?)::SetSetting( "bsr.iniVal.try.findFeasible", 4 );
Real est::GetStrategy(?)::SetSetting( "bsr.iniVal.try.cnstrMinNorm", 5 );

comment:7 Changed 12 years ago by Víctor de Buen Remiro

Me temo que TolIpopt es completamente necesario precisamente en muchos casos de modelos estimados con BysMcmc, pues el usuario a menudo no conoce una solución factible mínimamente razonable, y eso es lo que se consigue poniendo bsr.iniVal.try.cnstrMinNorm:=1

De hecho fue el motivo principal por el que hicimos una API a IPOPT, así que no me parece nada razonable que no se use. Si hay un problema en una instalación concreta habrá que buscar el motivo y resolverlo. Huir del problema no va a solucionarlo. Una posibilidad sería entrar en el TRAC de IPOPT a poner un ticket a ver si alguien nos ayuda.

Note: See TracTickets for help on using tickets.