R
Rudi Cilibrasi
Hi everybody,
I am the main developer of CompLearn, an open-source machine learning
library
for scientific researchers. I have written a Ruby binding for
CompLearn
called complearn-ruby. It has worked fine in the past. But it has a
problem
ever since I converted the base library (libcomplearn) to use OpenMP
for
multicore processor support. If I just try to use the simplest
approach that
has worked in the past in my extconf.rb, I get the following problem
when I
try to require the C-extension Ruby binding complearn4r.so and use the
multicore part of the system:
ruby: symbol lookup error: /usr/lib/libcomplearn.so.1: undefined
symbol: GOMP_parallel_start
To try to fix this error,
I adjusted the extconf.rb to include this line:
have_library('gomp', 'main')
And rebuilding works but running a simple test program (just trying to
require
complearn) fails in a different way than before:
/home/cilibrar/rlc/projects/complearn/complearn-ruby/ext/complearn/
complearn4r.so: libgomp.so.1: shared object cannot be dlopen()ed - /
home/cilibrar/rlc/projects/complearn/complearn-ruby/ext/complearn/
complearn4r.so (LoadError)
from /home/cilibrar/rlc/projects/complearn/complearn-ruby/lib/
complearn.rb:2
from tests/t2.rb:1:in `require'
from tests/t2.rb:1
I don't know what else to try and wonder if anybody else can offer a
clue?
I have tried for a long time experimenting with CFLAGS, CPPFLAGS,
LDFLAGS,
and -fopenmp among other settings but I still cannot seem to figure
out
a solution. I have put the source code for this problem up at
http://cilibrar.com/~cilibrar/projsup/rubbug/libcomplearn-1.0.4.tar.gz
and
http://cilibrar.com/~cilibrar/projsup/rubbug/libcomplearn-ruby-1.0.4.tar.gz
I would appreciate greatly any help anybody can offer in this
problem. Thank
you for your attention,
Rudi
I am the main developer of CompLearn, an open-source machine learning
library
for scientific researchers. I have written a Ruby binding for
CompLearn
called complearn-ruby. It has worked fine in the past. But it has a
problem
ever since I converted the base library (libcomplearn) to use OpenMP
for
multicore processor support. If I just try to use the simplest
approach that
has worked in the past in my extconf.rb, I get the following problem
when I
try to require the C-extension Ruby binding complearn4r.so and use the
multicore part of the system:
ruby: symbol lookup error: /usr/lib/libcomplearn.so.1: undefined
symbol: GOMP_parallel_start
To try to fix this error,
I adjusted the extconf.rb to include this line:
have_library('gomp', 'main')
And rebuilding works but running a simple test program (just trying to
require
complearn) fails in a different way than before:
/home/cilibrar/rlc/projects/complearn/complearn-ruby/ext/complearn/
complearn4r.so: libgomp.so.1: shared object cannot be dlopen()ed - /
home/cilibrar/rlc/projects/complearn/complearn-ruby/ext/complearn/
complearn4r.so (LoadError)
from /home/cilibrar/rlc/projects/complearn/complearn-ruby/lib/
complearn.rb:2
from tests/t2.rb:1:in `require'
from tests/t2.rb:1
I don't know what else to try and wonder if anybody else can offer a
clue?
I have tried for a long time experimenting with CFLAGS, CPPFLAGS,
LDFLAGS,
and -fopenmp among other settings but I still cannot seem to figure
out
a solution. I have put the source code for this problem up at
http://cilibrar.com/~cilibrar/projsup/rubbug/libcomplearn-1.0.4.tar.gz
and
http://cilibrar.com/~cilibrar/projsup/rubbug/libcomplearn-ruby-1.0.4.tar.gz
I would appreciate greatly any help anybody can offer in this
problem. Thank
you for your attention,
Rudi