Hacker News new | past | comments | ask | show | jobs | submit login
High performance array programming in Petalisp (zenodo.org)
69 points by medo-bear 7 months ago | hide | past | favorite | 11 comments



Related (but tiny):

Petalisp: A DSL in CL intended for high performance array-based computing - https://news.ycombinator.com/item?id=17170393 - May 2018 (1 comment)


Wait, I know the author and will share the link so he can join here.


Heh, thanks :)

Petalisp author here - this ELS paper is just a preview. I'm also preparing a 160 page document (for my PhD) that will explain everything in more detail. I'll post on HN when it is available.

There is also a recording of my ELS talk on Twitch: https://www.twitch.tv/videos/2138821711?t=00h40m35s


I was a bit surprised to see no mention of StarLisp [1]. Is this just a fundamentally different approach? I can imagine that targeting modern machines rather than the Connection Machine would be very different, but I thought the notations used in StarLisp were nice and could be reused.

[1] https://en.wikipedia.org/wiki/*Lisp


Great work. I've been following Petalisp for a couple of years now. It is one of my favourite CL projects


iiuc, that JIT-compiler uses the CL-image's compile function. That won't do any good, if in a HPC environment the actual heavy lifting is to be done on equipment other than the main CPU, e.g. a GPGPU or (earlier) Xeon Phi.


In the paper the author talks about compiling to CUDA


"We already have code generators for turning kernels into Com- mon Lisp code and for turning a subset of kernels into C++ or CUDA code. Right now, our strategy is to use C++ and GCC when possible, and Common Lisp code otherwise. In the future, we plan to make the C++ generator obsolete by using SIMD optimized Common Lisp instead. Doing so would build on our previous work on s b - s i m d that we presented at the 15th European Lisp Symposium in Porto"

My take from that is, that for CUDA external tools are used today. Still, interesting work.


What do you mean by external tools?


"Not only is this JIT-compiler just 8 lines of code, it is also 20 times faster than invoking GCC or Clang on a roughly equivalent piece of C code."

So about as fast as TinyCcompiler (tcc)? Which produces faster code (in the context of HPC, elegance and ease of development takes a backseat to sheer performance, methinks)?


Why would you use C, or even assembly, when machine code is faster




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: