Graal and Clojure

Jules Gosnell jules_gosnell at yahoo.com
Tue Mar 18 21:26:31 UTC 2014


Eric,

Thanks for checking out Clumatra :-) :

  https://github.com/JulesGosnell/clumatra

I'm only just getting it off the ground at the moment, so I'm afraid 
that there is not much there yet.

Its aim is to promote Clojure/Sumatra/Graal friendliness and I hope, 
ensure that Clojure can take advantage of all the benefits of HSA as 
soon as Java9 comes out.

OK - that's the plug over with - now to your questions.

1. enabling a real 'finalizer' instead of the Okra simulator - Hmmm... I 
haven't bought my HSA box yet - it is still a wishlist on Amazon. So I 
have not been able to try this yet. However, I get the feeling from 
looking at the Okra src, that it might detect if the finalizer is 
available and switch over for you. The OkraContext has an isSimulator() 
method on it. So it must be able to run in simulated and some other mode 
... I think the HSAIL->GPU finalizer is available in one of the AMD d/ls 
- you probably have it already... I'll log something about whether we 
are on a simulator or not in the test harness. - There might be a -X 
flag to the jvm to enable a finalizer...

2. I'll have to dig around in the Clojure test harness to see if it can 
be integrated with junit - otherwise I'll have to switch over. I can see 
the obvious benefit in being able to kick these tests off in your 
debugger. I'll look into it.

3. I'm glad that it is helping uncover issues. I have added a few more 
test today and will keep building. I'm looking forward to getting more 
and more of the stack runnning.

I have a few thoughts / questions - if I may :-)

Is there a web page on which you guys are ticking off each bytecode 
instruction as it is implemented ? This would be a help to me when I 
have a test that fails. I can look at the page to see if it should work 
or not.

What might I reasonably expect to get working eventually ? I'm assuming 
that there are limits to what can be done on the GPU - I'm assuming that 
i/o for instance is not feasible etc... Is there some sort of a road map 
published anywhere that I could take a peek at ?

I think that is enough for the moment,

Thanks again, Eric, for your interest in Clumatra - I look forward to 
working with you guys to get Clojure and Graal to work well together.


Jules




On 17/03/14 22:20, Eric Caspole wrote:
> Hi everybody,
> I was setting up a new HSA system today and I installed Clumatra and got
> it working under the simulator. I have a real HSA system not too
> different from this:
>
> http://code.google.com/p/aparapi/wiki/SettingUpLinuxHSAMachineForAparapi
>
> In the clojure/lein/maven based system there is so much harness I can't
> immediately see how to switch in the real hardware version of Okra
> instead of the simulator Okra that gets installed into maven and
> exploded in /tmp when the tests run.
>
> Jules, could you show how to bypass the harness etc to switch the Okra?
> Can I just run 1 test with a simple java command line? This makes it a
> lot easier to use a debugger which I will definitely want to do.
>
> Otherwise this is a cool project and we already found 1 or 2 issues we
> can fix in HSAIL Graal related to your clojure tests.
> Regards,
> Eric
>
>
>
> On 03/17/2014 06:43 AM, Doug Simon wrote:
>> Hi Julian,
>>
>> In terms of what to test, I’ll leave it up to the Sumatra developers
>> at AMD and Oracle to comment on what may be interesting.
>>
>> As far as I know, no one in the Graal team is that familiar with
>> Clojure. This actually makes the value of having Clojure tests
>> integrated into our gate system somewhat problematic -
>> debugging/fixing failures may be difficult. I’d suggest you report
>> failures your discover on the sumatra-dev and graal-dev lists and we
>> can resolve them that way for now.
>>
>> In addition, for Graal we’re always interested in benchmark suites for
>> JVM hosted languages. Can you recommend any well known and trusted
>> Clojure benchmarks we should consider?
>>
>> -Doug
>>
>> On Mar 17, 2014, at 12:35 AM, Jules Gosnell <jules_gosnell at yahoo.com>
>> wrote:
>>
>>> Doug,
>>>
>>> Sorry it has taken me a while to get back - I've been busy playing
>>> with code.
>>>
>>> I currently have a small clojure testsuite up and running. I plan to
>>> broaden this and then think about providing it in a junit-compatible
>>> way to your project.
>>>
>>> I still haven't made up my mind exactly what I should be testing. It
>>> seems unnecessary to duplicate all your tests in Clojure, since you
>>> are already guarding against regression in these areas - I think I
>>> will start out with a fairly general set of tests as I probe for
>>> particular problem areas for Clojure, into which I may dive for more
>>> detail - time will tell... if you have any ideas, please let me know.
>>>
>>> I've checked my stuff in at github, if anyone is interested - here is
>>> the project:
>>>
>>> https://github.com/JulesGosnell/clumatra
>>>
>>> here is some clojure that I reverse engineered from GraalKernelTester:
>>>
>>> https://github.com/JulesGosnell/clumatra/blob/master/src/clumatra/core.clj
>>>
>>>
>>> and here are the first successful tests:
>>>
>>> https://github.com/JulesGosnell/clumatra/blob/master/test/clumatra/core_test.clj
>>>
>>>
>>> not very pretty yet - I am still feeling my way.
>>>
>>> cheers
>>>
>>>
>>> Jules
>>>
>>>
>>>
>>>
>>> On 06/03/14 10:24, Doug Simon wrote:
>>>> Hi Julian,
>>>>
>>>> This looks very interesting and will be an good alternative testing
>>>> vector for the Sumatra work as it matures. If Clojure tests can
>>>> somehow be made to run from Junit, then I’m sure we can try
>>>> integrating it into our testing.
>>>>
>>>> -Doug
>>>>
>>>> On Mar 6, 2014, at 12:56 AM, Julian Gosnell
>>>> <jules_gosnell at yahoo.com> wrote:
>>>>
>>>>> Guys,
>>>>>
>>>>> I just built the Java8 / Graal / Okra stack and managed to run some
>>>>> very simple Clojure copying the contents of one int array into
>>>>> another one on Okra.
>>>>>
>>>>> https://groups.google.com/forum/#!topic/clojure/JpjK__NTR5Y
>>>>>
>>>>>
>>>>> I find the ramifications of this very exciting :-)
>>>>>
>>>>> I understand that fn-ality is limited at the moment - but I am keen
>>>>> to keep testing and to help ensure early visibility of Clojure
>>>>> related issues to both communities - perhaps even the submission of
>>>>> a Clojure testsuite if Graal developers thought that useful.
>>>>>
>>>>> I'd be very interested in your thoughts on Graal / Clojure.
>>>>>
>>>>> regards,
>>>>>
>>>>>
>>>>> Jules
>>>>>
>>>>
>>>>
>>>
>>
>>
>
>



More information about the graal-dev mailing list