I would guess that you shouldn't have to hack the GASNet Makefile themselves to get gcc as your target compiler. That should be arranged as a result of your setting CHPL_TARGET_COMPILER=gnu (or taking that as the default). If that's not happening we might need to do some more work in our Makefiles. That wouldn't be surprising given how little experience we have with ARM. (My own exploration was with CHPL_COMM=none.)

What does running $CHPL_HOME/util/printchplenv produce?

thanks,
greg


On 3/17/2015 9:24 AM, Brian Guarraci wrote:
I tried turning on gasnet to verify if i can use multilocales on ARM and hit some compilation issues. I have worked around them by hacking the third-party/gasnet/GASNet-1.24.0 headers to assume PLATFORM_COMPILER_GNU. I have been able to run the hello world example but wonder if I'm going to hit some subtle bug later.

diff --git a/third-party/gasnet/GASNet-1.24.0/gasnet_atomic_bits.h b/third-party/gasnet/GASNet-1.24.0/gasnet_atomic_bits.h
index f2d751e..97241e2 100644
--- a/third-party/gasnet/GASNet-1.24.0/gasnet_atomic_bits.h
+++ b/third-party/gasnet/GASNet-1.24.0/gasnet_atomic_bits.h
@@ -2574,7 +2574,8 @@
     #endif
/* ------------------------------------------------------------------------------------ */
   #elif PLATFORM_ARCH_ARM && defined(GASNETI_HAVE_ARM_CMPXCHG)
-    #if PLATFORM_COMPILER_GNU && PLATFORM_OS_LINUX
+    //#if PLATFORM_COMPILER_GNU && PLATFORM_OS_LINUX
+    #if PLATFORM_OS_LINUX
       #define GASNETI_HAVE_ATOMIC32_T 1

       typedef struct { volatile unsigned int ctr; } gasneti_atomic32_t;
diff --git a/third-party/gasnet/GASNet-1.24.0/gasnet_membar.h b/third-party/gasnet/GASNet-1.24.0/gasnet_membar.h
index 70e4ac6..17c0e93 100644
--- a/third-party/gasnet/GASNet-1.24.0/gasnet_membar.h
+++ b/third-party/gasnet/GASNet-1.24.0/gasnet_membar.h
@@ -225,7 +225,7 @@
    #define GASNETI_RMB_IS_MB
    #define GASNETI_WMB_IS_MB
/* ------------------------------------------------------------------------------------ */
-#elif PLATFORM_ARCH_ARM && PLATFORM_OS_LINUX && PLATFORM_COMPILER_GNU
+#elif PLATFORM_ARCH_ARM && PLATFORM_OS_LINUX //&& PLATFORM_COMPILER_GNU
    #if defined(GASNETI_UNI_BUILD)
/* On a uniprocessor build avoid performing what reduces to an expensive no-op */
      #define gasneti_local_mb()  gasneti_compiler_fence()

On Mon, Mar 16, 2015 at 8:54 PM, Brian Guarraci <[email protected] <mailto:[email protected]>> wrote:

    setting CHPL_TASKS=fifo works!  Thanks!  I'll see what I can get
    going now.

    On Mon, Mar 16, 2015 at 7:26 AM, Greg Titus <[email protected]
    <mailto:[email protected]>> wrote:

        Hi Brian --

        (I'm Greg Titus, on the Chapel core team. I work mainly on the
        runtime, especially tasking and communications.)

        I've built Chapel on a Cavium ARM system and run one test
        (hello world, of course!). I did have trouble with the
        third-party/qthreads build there, and so had to drop back to
        using our old fifo tasking layer by setting the CHPL_TASKS
        environment variable to 'fifo'. If you do this does the build
        get further or even succeed?

        (We're a little busy at present since we're right at the end
        of our release cycle, so I'll beg forgiveness ahead of time if
        we're a bit slow in responding to things.)

        greg



        On 3/16/2015 8:05 AM, Brian Guarraci wrote:
        I would definitely like to talk about Chapel as a great way
        to utilize a highly distributed system.  What I've seen in
        these open-source communities, especially for systems such as
        Parallella (which I also have an 8 node version of), is that
        developers don't have a good way to actually use the
        hardware.  Python theano is one of the easiest ways I've seen
        so far for GPU.

        Regarding Chapel on ARM, I've tried compiling it yesterday
        and hit an issue compiling pthread.  The Jetson TK1 boards
        running Ubuntu 14 don't seem to have arm-uncontext.h.  In
        short, if I can get some help ironing out the build then I
        will work on some demos.

        Thanks!


        On Mon, Mar 16, 2015 at 6:56 AM, Michael Ferguson
        <[email protected] <mailto:[email protected]>> wrote:

            Hi Brian -

            You could certainly run Chapel on your system across the
            ARM chips
            and ignore running on the GPUs for your demo. It might be
            that
            the current version of Chapel will show better on one of
            the other
            clusters you plan to bring, also. In any case, I think it
            would
            be really exciting to have Chapel shown at such an event!

            Just to add a little bit to what Brad mentioned about GPU
            support.
            There are a number of possible paths to running Chapel
            code on GPUS:
             - Generating CUDA code and then using nvcc (this was
            Albert's approach)
             - Generating OpenACC directives is another possibility
             - Generating OpenCL
             - Generating LLVM that can run on a GPU and using e.g.
            OpenCL calls to
            launch it
             - (and idea I haven't brought up before) integrating
            with the
               Intel SPMD compiler and using its existing capabilities
               as the Chapel back-end

            I'd be interested to know if you have an opinion about
            how we build
            GPU support. Besides that, any help you can offer in
            development and
            testing of such support would really help the project.

            Cheers,

            -michael

            On 3/15/15, 2:56 AM, "Brad Chamberlain" <[email protected]
            <mailto:[email protected]>> wrote:

            >
            >Hi Brian --
            >
            >There is no support for GPUs in the official Chapel
            releases or on the
            >master branch at GitHub. Albert Sidelnik (formerly UIUC,
            now Nvidia) did
            >some work on porting Chapel to GPUs a few years back
            which was published
            >at IPDPS and the paper is available here:
            >
            > http://polaris.cs.uiuc.edu/~asideln2/ipdps12.pdf
            <http://polaris.cs.uiuc.edu/%7Easideln2/ipdps12.pdf>
            >
            >A few people have tried to resurrect this work from
            time-to-time and
            >catch
            >it up to the current release, but I'm not aware that any
            efforts have
            >been
            >terribly successful.  Adding support for GPUs is on our
            TODO list, but
            >not
            >at the top at present.
            >
            >Thanks for your interest in Chapel, and we' d be curious
            to know more
            >about your demo as it approaches,
            >-Brad
            >
            >
            >On Sat, 14 Mar 2015, Brian Guarraci wrote:
            >
            >> Hi,
            >>
            >> I'm interested in using Chapel to illustrate parallel
            computing at a
            >>Maker
            >> Faire demo coming up in May.  I have a couple
            different cluster
            >>computers
            >> I'm going to be showing and one has 16 Nvidia Jetson
            TK1 boards, which
            >>is
            >> an ARM-based SoC w/ CUDA GPU.  I'm curious about using
            Chapel for
            >>showing
            >> some demos on how to leverage the system.  Has anyone
            done this kind of
            >> thing already?
            >>
            >> Thanks!
            >> Brian
            >>
            >
            
>--------------------------------------------------------------------------
            >----
            >Dive into the World of Parallel Programming The Go
            Parallel Website,
            >sponsored
            >by Intel and developed in partnership with Slashdot
            Media, is your hub
            >for all
            >things parallel software development, from weekly
            thought leadership
            >blogs to
            >news, videos, case studies, tutorials and more. Take a
            look and join the
            >conversation now. http://goparallel.sourceforge.net/
            >_______________________________________________
            >Chapel-developers mailing list
            >[email protected]
            <mailto:[email protected]>
            >https://lists.sourceforge.net/lists/listinfo/chapel-developers




        
------------------------------------------------------------------------------
        Dive into the World of Parallel Programming The Go Parallel Website, 
sponsored
        by Intel and developed in partnership with Slashdot Media, is your hub 
for all
        things parallel software development, from weekly thought leadership 
blogs to
        news, videos, case studies, tutorials and more. Take a look and join the
        conversation now.http://goparallel.sourceforge.net/


        _______________________________________________
        Chapel-developers mailing list
        [email protected]  
<mailto:[email protected]>
        https://lists.sourceforge.net/lists/listinfo/chapel-developers




------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Chapel-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chapel-developers

Reply via email to