<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Hi,</p>
<p>I'll see if I can improve the conda recipe.</p>
<p>Just one simple question: how does Maker divide the work between
worker nodes in mpi mode? Is it supposed to be 1 contig per node
or are the largest contig splitted into smaller chunks, each one
potentially treated on different nodes? From my tests I have the
feeling it is the first answer, but I'm not sure if it's normal or
not.<br>
</p>
<p>Anthony<br>
</p>
<div class="moz-cite-prefix">Le 19/10/2018 à 19:22, Carson Holt a
écrit :<br>
</div>
<blockquote type="cite"
cite="mid:78C1AB95-8D23-4D71-939B-5B68666BE5B7@gmail.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Repeatmasker does some data prep during installation (creates new
files in the process), and that does not happeni for the bioconda
RepeatMasker recipe. So it’s broken.
<div class=""><br class="">
</div>
<div class="">For fixing it, look at the homebrew recipe for
RepeatMasker. It does a good job where they also have it
preconfigure itself for the free Dfam database rather than
RepBase light —></div>
<div class=""><br class="">
</div>
<div class=""><a
href="https://github.com/brewsci/homebrew-bio/blob/master/Formula/repeatmasker.rb"
class="" moz-do-not-send="true">https://github.com/brewsci/homebrew-bio/blob/master/Formula/repeatmasker.rb</a><br
class="">
<div class=""><br class="">
</div>
<div class="">te_proteins is not a RepeatMasker file. It’s a
RepeatRunner file which has been integrated into MAKER. MAKER
just needs to be able to find it. It will look in the
…/maker/data/ directory by default and put the location in
te_protein= by default.</div>
<div class=""><br class="">
</div>
<div class="">—Carson</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On Oct 18, 2018, at 7:52 AM, Anthony
Bretaudeau <a class="moz-txt-link-rfc2396E" href="mailto:anthony.bretaudeau@inria.fr"><anthony.bretaudeau@inria.fr></a> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" class="">
<div bgcolor="#FFFFFF" text="#000000" class="">
<p class="">Hi,</p>
<p class="">I think I finally found a solution for
this segfault. In short: run "<span
class="blob-code-inner blob-code-marker-addition"><span
class="pl-s">export THREADS_DAEMON_MODEL=1"
before running maker.</span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s">After
looking at the debug log, I noticed that the
segfault happened the first time the perl
system() function was called (usually to launch
a "mv" command).</span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s">This
+ the backtrace shows that it has something to
do with signal handling when running child
process from threads.</span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s">After
a lot of trials and errors modifying the code, I
found this page talking about this env var:
<a class="moz-txt-link-freetext"
href="https://metacpan.org/pod/forks#Co-existance-with-fork-aware-modules-and-environments"
moz-do-not-send="true">https://metacpan.org/pod/forks#Co-existance-with-fork-aware-modules-and-environments</a><br
class="">
</span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s">It
seems to be enough to avoid the segfault. I have
no idea if it could have any downside, but maker
seems to give the same results as in non-mpi
mode.<br class="">
</span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s"><br
class="">
</span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s">Concerning
</span></span><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s">RepeatMasker
not being installed correctly, it seems to be
intended as written in the </span></span><span
class="blob-code-inner blob-code-marker-addition"><span
class="pl-s"><span class="
blob-code-marker-addition
blob-code-inner
"><span class="pl-s">RepeatMasker</span></span>
conda recipe:
<a class="moz-txt-link-freetext"
href="https://github.com/bioconda/bioconda-recipes/blob/master/recipes/repeatmasker/build.sh#L16"
moz-do-not-send="true">https://github.com/bioconda/bioconda-recipes/blob/master/recipes/repeatmasker/build.sh#L16</a><br
class="">
</span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s">I
use the </span></span><span
class="blob-code-inner blob-code-marker-addition"><span
class="pl-s"><span class="pl-c">REPEATMASKER_LIB_DIR
env var so it's not really a problem for me,
and the galaxy tools is doing the same
(<a class="moz-txt-link-freetext"
href="https://github.com/galaxyproject/tools-iuc/blob/master/tools/maker/maker.xml#L11"
moz-do-not-send="true">https://github.com/galaxyproject/tools-iuc/blob/master/tools/maker/maker.xml#L11</a>).</span></span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s"><span
class="pl-c"></span>I'm not a RepeatMasker
expert, so I don't know if providing the old
database would make more sense...</span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s">I
guess it's the same question for te_proteins.</span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s"><br
class="">
</span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s">Cheers</span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s">Anthony<br
class="">
</span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s"><br
class="">
</span></span></p>
<p class=""><span class="blob-code-inner
blob-code-marker-addition"><span class="pl-s"><br
class="">
</span></span></p>
<div class="moz-cite-prefix">Le 05/10/2018 à 22:37,
Carson Holt a écrit :<br class="">
</div>
<blockquote type="cite"
cite="mid:8D151E3B-353F-4FD5-94DB-95C1125A8176@gmail.com"
class="">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" class="">
I tried setting this up but there are a number of
issues I run into.
<div class=""><br class="">
</div>
<div class="">First RepeatMasker is not being
installed correctly. The configuration step should
create these files (created by ./configure script
during RepeatMasker setup) —></div>
<div class="">
<div class="">RepeatMasker.lib</div>
<div class="">RepeatMasker.lib.nhr</div>
<div class="">RepeatMasker.lib.nin</div>
<div class="">RepeatMasker.lib.nsq</div>
<div class="">RepeatMaskerLib.embl</div>
</div>
<div class=""><br class="">
</div>
<div class="">But they do not exist in the share
directory.</div>
<div class=""><br class="">
</div>
<div class="">Also MAKER needs access to the
te_proteins file in …/maker/data, and because you
have rearranged maker’s structure it can’t find
it.</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">Then for the Segmentation fault, I
have seen this a handful of times in the past
where users install their own version of perl
rather than using the system perl together with
their own install of OpenMPI. The issue is some
series of flags either in OpenMPi or perl (I’m not
sure which). But one way around it is to disable
the interpreter threads option when compiling and
installing perl for yourself. Most system perl
installs have interpreter threads enabled, so I’m
not sure why some self-installs generate this
segfault and never the system perl. Interestingly
interpreter threads are turned off by default when
you install perl manually as they are
“officially discouraged". You actually have to
enable it during the self-install process, and
conda is enabling them on the manual install to
match most system perls.</div>
<div class=""><br class="">
</div>
<div class="">Another work around is don’t use
OpenMPI. Try MPICH3.</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">—Carson</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On Sep 25, 2018, at 6:10 AM,
Anthony Bretaudeau <<a
href="mailto:anthony.bretaudeau@inria.fr"
class="" moz-do-not-send="true">anthony.bretaudeau@inria.fr</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta http-equiv="content-type"
content="text/html; charset=UTF-8"
class="">
<div bgcolor="#FFFFFF" text="#000000"
class="">
<p class="">Hi,</p>
<p class="">I've worked on the Bioconda
recipe for Maker (<a
class="moz-txt-link-freetext"
href="https://github.com/bioconda/bioconda-recipes/tree/master/recipes/maker/"
moz-do-not-send="true">https://github.com/bioconda/bioconda-recipes/tree/master/recipes/maker/</a>).
It works well, except when using it in
MPI mode. I get this segfault error:</p>
<pre class="">STATUS: Processing and indexing input FASTA files...
[cl1n022:06306] *** Process received signal ***
[cl1n022:06306] Signal: Segmentation fault (11)
[cl1n022:06306] Signal code: Address not mapped (1)
[cl1n022:06306] Failing at address: 0x514
[cl1n022:06306] [ 0] /lib64/libpthread.so.0(+0xf6d0)[0x2b9ce51026d0]
[cl1n022:06306] [ 1] /local/miniconda3/envs/maker-2.31.10/bin/perl(Perl_csighandler+0x1e)[0x4aad4e]
[cl1n022:06306] [ 2] /lib64/libpthread.so.0(+0xf6d0)[0x2b9ce51026d0]
[cl1n022:06306] [ 3] /lib64/libc.so.6(__poll+0x2d)[0x2b9ce5f5cf0d]
[cl1n022:06306] [ 4] /local/miniconda3/envs/maker-2.31.10/perl/lib/auto/Parallel/Application/MPI/../../../../../../lib/./libopen-pal.so.40(+0x869e5)[0x2b9cf05859e5]
[cl1n022:06306] [ 5] /local/miniconda3/envs/maker-2.31.10/perl/lib/auto/Parallel/Application/MPI/../../../../../../lib/./libopen-pal.so.40(opal_libevent2022_event_base_loop+0x242)[0x2b9cf057a73a]
[cl1n022:06306] [ 6] /local/miniconda3/envs/maker-2.31.10/perl/lib/auto/Parallel/Application/MPI/../../../../../../lib/./libopen-pal.so.40(+0x384de)[0x2b9cf05374de]
[cl1n022:06306] [ 7] /lib64/libpthread.so.0(+0x7e25)[0x2b9ce50fae25]
[cl1n022:06306] [ 8] /lib64/libc.so.6(clone+0x6d)[0x2b9ce5f67bad]
[cl1n022:06306] *** End of error message ***
SIGTERM received
SIGTERM received
</pre>
<p class=""><br class="">
</p>
<p class="">As mentioned in older posts,
I've tried adding the LD_PRELOAD
variable, or running mpirun with the
"-mca btl ^openib" option, but it didn't
help.</p>
<p class="">As this happens with the
Bioconda package, I guess it should be
pretty reproducible on other setups.</p>
<p class="">Bioconda's Maker package uses
version 5.26.2 of Perl and version 3.1.2
of OpenMPI, and the OpenMPI recipe is on
<a class="moz-txt-link-freetext"
href="https://github.com/conda-forge/openmpi-feedstock/tree/master/recipe"
moz-do-not-send="true">https://github.com/conda-forge/openmpi-feedstock/tree/master/recipe</a></p>
<p class="">Any help would be highly
appreciated!</p>
<p class="">Anthony Bretaudeau<br class="">
</p>
</div>
_______________________________________________<br class="">
maker-devel mailing list<br class="">
<a
href="mailto:maker-devel@box290.bluehost.com"
class="" moz-do-not-send="true">maker-devel@box290.bluehost.com</a><br
class="">
<a class="moz-txt-link-freetext"
href="http://box290.bluehost.com/mailman/listinfo/maker-devel_yandell-lab.org"
moz-do-not-send="true">http://box290.bluehost.com/mailman/listinfo/maker-devel_yandell-lab.org</a><br
class="">
</div>
</blockquote>
</div>
<br class="">
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</blockquote>
</body>
</html>