Different MPI implementations have different capabilities.  Some can handle
multiple threads making MPI calls in parallel (MPI_THREAD_MULTIPLE), some
require only one thread accessing MPI at a time (MPI_THREAD_SERIALIZED),
and some only work if all calls to MPI go through the same thread
(MPI_THREAD_FUNNELED: other threads can exist, but should never make MPI
calls), or if there is only one thread in the program (MPI_THREAD_SINGLE).

Our PAMI backend can support the FUNNELED case, by using a special thread
which handles all probing, and other threads can hand off message sending
operations to that same thread.  But we don't currently support this same
capability in the MPI backend, since it's such a rare case and more
difficult to implement.  We do support the other three modes.

See https://www.open-mpi.org/doc/v2.0/man3/MPI_Init_thread.3.php for more
details on the different modes.


Since your system only supports MPI_THREAD_SINGLE, you can only have one
thread per place, which as you noted earlier, requires the combination of
X10_STATIC_THREADS=1 X10_NTHREADS=1 and X10_NUM_IMMEDIATE_THREADS=0.
Unfortunately, as you also noted, this means you can't use clocks in your
program.

I believe the only path forward here is to re-work your application so that
it doesn't use clocks.


 - Ben



From:   Marina Andric <marina.and...@imtlucca.it>
To:     Mailing list for users of the X10 programming language
            <x10-users@lists.sourceforge.net>
Date:   07/27/2016 03:05 PM
Subject:        Re: [X10-users] Problem with compiling programs to C++ backend
            after building x10 from source



Hi Josh,

I checked and the level provided is not serialized, as I thought (sorry),
it is MPI_THREAD_SINGLE.

Is it compatible with X10 implementation?

Thanks a lot,
Marina


On Wed, Jul 27, 2016 at 7:20 PM, Joshua J Milthorpe <jjmil...@us.ibm.com>
wrote:
  Hi Marina,

  it looks like you are setting the environment variable correctly. I guess
  it's possible that your MPI implementation doesn't support
  MPI_THREAD_SERIALIZED, either. What version of MPI are you using? (and
  what sort of cluster are you running on?) Can you try a simple MPI
  program that initializes MPI with MPI_THREAD_SERIALIZED, to see if this
  works outside of X10?

  https://www.mpi-forum.org/docs/mpi-3.1/mpi31-report/node303.htm

  Cheers,

  Josh


  Inactive hide details for Marina Andric ---07/27/2016 12:53:35 PM---Hi
  Josh, Thanks a lot for your email.Marina Andric ---07/27/2016 12:53:35
  PM---Hi Josh, Thanks a lot for your email.

  From: Marina Andric <marina.and...@imtlucca.it>
  To: Mailing list for users of the X10 programming language <
  x10-users@lists.sourceforge.net>
  Date: 07/27/2016 12:53 PM



  Subject: Re: [X10-users] Problem with compiling programs to C++ backend
  after building x10 from source




  Hi Josh,

  Thanks a lot for your email.

  I just tested it again and faced the old mistake again:

  "Underlying MPI implementation does not provide requested threading level
                               Unable to support requested level of X10
  threading; exiting"


  I am struggling to understand why this happens. I opened x10rt_mpi.cc
  file and saw the part of the code that generates the error, which is
  when level_required != level_provided, where level_required is set
  according to what getenv(X10RT_MPI_THREAD_SERIALIZED) returns.

  Am I maybe setting the variable in a wrong way? I am executing a script
  with a line

  export X10RT_MPI_THREAD_SERIALIZED=1

  Thanks,
  Marina



  On Wed, Jul 27, 2016 at 6:29 PM, Joshua J Milthorpe <jjmil...@us.ibm.com>
  wrote:
        Hi Marina,

        the message you found regarding X10RT_MPI_THREAD_MULTIPLE is now
        out of date :-(

        Since X10 2.5.2, MPI_THREAD_MULTIPLE is the default threading
        level, but it is possible to request MPI_THREAD_SERIALIZED by
        setting the environment variable X10RT_MPI_THREAD_SERIALIZED. In
        this case, X10 will serialize all calls to MPI functions through a
        global lock (in accordance with the rules for
        MPI_THREAD_SERIALIZED).

        https://xtenlang.atlassian.net/browse/XTENLANG-3490

        Could you please try running with X10RT_MPI_THREAD_SERIALIZED=1 and
        let us know the result?

        Cheers,
                                                                                
   
 Josh Milthorpe                                                                 
   
 Post Doctoral Researcher                                                       
   
 Cognitive Systems: Learning to Reason                                          
   
 IBM Research                                                                   
   
                                                                                
   


                                                                                
    
                                                                                
    
                                                                                
    
 Phone: 1-914-945-2209                                            1101 
Kitchawan Rd 
 E-mail: jjmil...@us.ibm.com                             Yorktown Heights, NY 
10598 
                                                                      United 
States 
                                                                                
    




        Inactive hide details for Marina Andric ---07/27/2016 12:13:16
        PM---Hi again, I came acrossMarina Andric ---07/27/2016 12:13:16
        PM---Hi again, I came across

        From: Marina Andric <marina.and...@imtlucca.it>
        To: Mailing list for users of the X10 programming language <
        x10-users@lists.sourceforge.net>
        Date: 07/27/2016 12:13 PM
        Subject: Re: [X10-users] Problem with compiling programs to C++
        backend after building x10 from source




        Hi again,

        I came across

        "Only if X10_STATIC_THREADS=1 X10_NTHREADS=1 and
        X10_NUM_IMMEDIATE_THREADS=0 will we use single-threaded MPI modes."

        on one of the pages dedicated to X10.

        I now initialized the variables and I'm not anymore facing the
        error that provided and requested threading levels do not match.
        However, my code uses Clocks for synchronization and I get runtime
        error

                                  ClockUseException: Clocks are not
        compatible with static threads.

        I guess that I've hit the wall now and can't proceed in this
        direction.

        Or is there a possible workaround to make Clocks work in mpi thread
        serialized setting ?

        Thank you,
        Marina









        On Wed, Jul 27, 2016 at 3:26 PM, Marina Andric <
        marina.and...@imtlucca.it> wrote:
                    Hi,

                    Thanks a lot Marco for the help. Yes, I initially
                    copied the executable, then I built it on the cluster
                    and now it works, almost :)

                    Works well until the moment I compile the program with
                    -x10rt mpi option. The program is compiled and
                    executable is generated, but it is not running. The
                    error states:

                                              "Underlying MPI
                    implementation does not provide requested threading
                    level
                                                 Unable to support
                    requested level of X10 threading; exiting"

                    (the whole output is attached)

                    I found this page:
                    https://sourceforge.net/p/x10/mailman/message/33490796/
                    and started looking into X10 runtime variables
                    (X10RT_MPI_THREAD_MULTIPLE, X10_STATIC_THREADS) and
                    played a bit with those but with no success..

                    On my linux laptop it works with -x10rt mpi option,
                    with no errors. In both cases, on my machine and the
                    cluster, MPI_THREAD_MULTIPLE is set to no.

                    Does someone has an idea how to solve this?

                    Thank you,
                    Marina













                    On Tue, Jul 26, 2016 at 1:00 AM, Marco Bungart <
                    m.bung...@gmx.net> wrote:
                    Hi Maina,

                    looks like you have not built the program on the
                    cluster. Did you just
                    copy the executable? This will in general not work. You
                    should download
                    and compile/install X10 on the cluster as well. The
                    easiest way would be
                    to build X10 from source (tutorial found here:
                    
http://x10-lang.org/x10-development/building-x10-from-source.html
                    ).
                    After that, re-compile your program on the cluster and
                    execute it.

                    Cheers,
                    Marco

                    Am 25.07.2016 um 18:11 schrieb Marina Andric:
                    >
                    > Thanks a lot Marco, this was something I neglected :)
                    the program is
                    > compiling/executing now on my machine.
                    >
                    > 'Im still having a problem on the cluster. I get
                    compilation error stating:
                    >
                    > x10.dist/stdlib/lib/libx10.so: undefined reference to
                    'memcpy@GLIBC_2.14'
                    > x10.dist/stdlib/lib/libx10.so: undefined reference to
                    > 'clock_gettime@GLIBC_2.17'
                    >
                    > Does somebody know the possible origins of this
                    problem? Do I maybe need
                    > to load some additional modules on the cluster,
                    except gcc and mpi?
                    >
                    > Warm regards,
                    > Marina
                    >
                    >
                    >
                    >
                    >
                    >
                    >
                    >
                    >
                    >
                    >
                    > On Sun, Jul 24, 2016 at 11:48 PM, Marco Bungart <
                    m.bung...@gmx.net
                    > <mailto:m.bung...@gmx.net>> wrote:
                    >
                    >     Hi,
                    >
                    >     have you tried running "$> ./a.out" instead of
                    "$> a.out"? Some systems
                    >     distinguish between system-wide executable (i.e.
                    executable located in
                    >     one of the paths specified in the $PATH
                    environment variable) and
                    >     executables in the current folder (i.e. ".").
                    >
                    >     Cheers,
                    >     Marco
                    >
                    >     Am 24.07.2016 um 21:22 schrieb Marina Andric:
                    >     > Hi all,
                    >     >
                    >     > I am trying to run an x10 program on a cluster.
                    The cluster supports
                    >     > only MPI based communication between nodes so I
                    built the latest x10
                    >     > source (version 2.6.0) with option
                    -DX10RT_MPI=true and the build was
                    >     > successful.
                    >     >
                    >     > My program works when it's compiled to java
                    (via x10c) but it doesn't
                    >     > work when it is compiled to c++ (via x10c++).
                    >     >
                    >     > For example, when
                    >     >
                    >     >> x10.dist/bin/x10c++ hello.x10
                    (creates a.out)
                    >     >> a.out
                    >     >
                    >     > the outcome is a.out: command not found.
                    >     >
                    >     > I tested a bit around, with -o option, -x10rt
                    sockets (mpi) and
                    >     nothing
                    >     > seemed to change. I eventually built x10
                    without -DX10RT_MPI=true and
                    >     > the problem is the same, also with the x10
                    version 2.5.4.
                    >     >
                    >     > I was building and testing on my local linux
                    machine and I checked all
                    >     > the program versions and they seem to be ok:
                    >     >
                    >     > ant 1.9.3
                    >     > g++ 4.8.4
                    >     >
                    >     > Can someone please say if I'm missing
                    something?
                    >     >
                    >     > Thank you,
                    >     > Marina
                    >     >
                    >     >
                    >     >
                    >     >
                    >     >
                    >     >
                    >     >
                    >     >
                    >
                    
------------------------------------------------------------------------------

                    >     > What NetFlow Analyzer can do for you? Monitors
                    network bandwidth
                    >     and traffic
                    >     > patterns at an interface-level. Reveals which
                    users, apps, and
                    >     protocols are
                    >     > consuming the most bandwidth. Provides
                    multi-vendor support for
                    >     NetFlow,
                    >     > J-Flow, sFlow and other flows. Make informed
                    decisions using
                    >     capacity planning
                    >     > reports.http://sdm.link/zohodev2dev
                    >     >
                    >     >
                    >     >
                    >     > _______________________________________________
                    >     > X10-users mailing list
                    >     > X10-users@lists.sourceforge.net
                    >     <mailto:X10-users@lists.sourceforge.net>
                    >     >
                    https://lists.sourceforge.net/lists/listinfo/x10-users
                    >     >
                    >
                    >     ---
                    >     Diese E-Mail wurde von Avast Antivirus-Software
                    auf Viren geprüft.
                    >     https://www.avast.com/antivirus
                    >
                    >
                    >
                    
------------------------------------------------------------------------------

                    >     What NetFlow Analyzer can do for you? Monitors
                    network bandwidth and
                    >     traffic
                    >     patterns at an interface-level. Reveals which
                    users, apps, and
                    >     protocols are
                    >     consuming the most bandwidth. Provides
                    multi-vendor support for NetFlow,
                    >     J-Flow, sFlow and other flows. Make informed
                    decisions using
                    >     capacity planning
                    >     reports.http://sdm.link/zohodev2dev
                    >     _______________________________________________
                    >     X10-users mailing list
                    >     X10-users@lists.sourceforge.net <mailto:
                    X10-users@lists.sourceforge.net>
                    >
                    https://lists.sourceforge.net/lists/listinfo/x10-users
                    >
                    >
                    >
                    >
                    >
                    
------------------------------------------------------------------------------

                    > What NetFlow Analyzer can do for you? Monitors
                    network bandwidth and traffic
                    > patterns at an interface-level. Reveals which users,
                    apps, and protocols are
                    > consuming the most bandwidth. Provides multi-vendor
                    support for NetFlow,
                    > J-Flow, sFlow and other flows. Make informed
                    decisions using capacity planning
                    > reports.http://sdm.link/zohodev2dev
                    >
                    >
                    >
                    > _______________________________________________
                    > X10-users mailing list
                    > X10-users@lists.sourceforge.net
                    >
                    https://lists.sourceforge.net/lists/listinfo/x10-users
                    >

                    ---
                    Diese E-Mail wurde von Avast Antivirus-Software auf
                    Viren geprüft.
                    https://www.avast.com/antivirus


                    
------------------------------------------------------------------------------

                    What NetFlow Analyzer can do for you? Monitors network
                    bandwidth and traffic
                    patterns at an interface-level. Reveals which users,
                    apps, and protocols are
                    consuming the most bandwidth. Provides multi-vendor
                    support for NetFlow,
                    J-Flow, sFlow and other flows. Make informed decisions
                    using capacity planning
                    reports.http://sdm.link/zohodev2dev
                    _______________________________________________
                    X10-users mailing list
                    X10-users@lists.sourceforge.net
                    https://lists.sourceforge.net/lists/listinfo/x10-users
        
------------------------------------------------------------------------------

        What NetFlow Analyzer can do for you? Monitors network bandwidth
        and traffic
        patterns at an interface-level. Reveals which users, apps, and
        protocols are
        consuming the most bandwidth. Provides multi-vendor support for
        NetFlow,
        J-Flow, sFlow and other flows. Make informed decisions using
        capacity planning
        reports.
        
http://sdm.link/zohodev2dev_______________________________________________

        X10-users mailing list
        X10-users@lists.sourceforge.net
        https://lists.sourceforge.net/lists/listinfo/x10-users



        
------------------------------------------------------------------------------

        What NetFlow Analyzer can do for you? Monitors network bandwidth
        and traffic
        patterns at an interface-level. Reveals which users, apps, and
        protocols are
        consuming the most bandwidth. Provides multi-vendor support for
        NetFlow,
        J-Flow, sFlow and other flows. Make informed decisions using
        capacity planning
        reports.http://sdm.link/zohodev2dev
        _______________________________________________
        X10-users mailing list
        X10-users@lists.sourceforge.net
        https://lists.sourceforge.net/lists/listinfo/x10-users
  ------------------------------------------------------------------------------

  What NetFlow Analyzer can do for you? Monitors network bandwidth and
  traffic
  patterns at an interface-level. Reveals which users, apps, and protocols
  are
  consuming the most bandwidth. Provides multi-vendor support for NetFlow,
  J-Flow, sFlow and other flows. Make informed decisions using capacity
  planning
  reports.
  http://sdm.link/zohodev2dev_______________________________________________

  X10-users mailing list
  X10-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/x10-users



  ------------------------------------------------------------------------------

  What NetFlow Analyzer can do for you? Monitors network bandwidth and
  traffic
  patterns at an interface-level. Reveals which users, apps, and protocols
  are
  consuming the most bandwidth. Provides multi-vendor support for NetFlow,
  J-Flow, sFlow and other flows. Make informed decisions using capacity
  planning
  reports.http://sdm.link/zohodev2dev
  _______________________________________________
  X10-users mailing list
  X10-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/x10-users

------------------------------------------------------------------------------

_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users


------------------------------------------------------------------------------
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to