Live data from Hacker News

Chapel 1.32

chapel-lang.org

11–20 of 32 posts

Re: Chapel 1.32

#11
post #5

I really like Legion as an alternative for HPC applications, among many others ( https://legion.stanford.edu/ )

Legion is great! I like that its developers really get HPC. But it is C++, with all of its baggage. (Update: There is also Regent language on top of C++ API, looks interesting).

Re: Chapel 1.32

#14
post #5

I really like Legion as an alternative for HPC applications, among many others ( https://legion.stanford.edu/ )

Legion is great! I like that its developers really get HPC. But it is C++, with all of its baggage. (Update: There is also Regent language on top of C++ API, looks interesting).

Hey, I'm the creator of Regent. Feel free to ask me questions.

Re: Chapel 1.32

#15
post #9

Earlier quoted context omitted.

What are C/C++/Zig/etc. missing that Chapel has?

Working in heterogeneous computing environments (and having first-class facilities for that), while still being easy enough to immediately start adapting numerical code from any reference implementation.

What are these first class facilities? Just curious

Re: Chapel 1.32

#16

Earlier quoted context omitted.

Legion is great! I like that its developers really get HPC. But it is C++, with all of its baggage. (Update: There is also Regent language on top of C++ API, looks interesting).

Hey, I'm the creator of Regent. Feel free to ask me questions.

How would you characterize/contrast Regent vs. Chapel? What do you see are the main drawbacks/benefits of each?

Re: Chapel 1.32

#17

Earlier quoted context omitted.

Hey, I'm the creator of Regent. Feel free to ask me questions.

How would you characterize/contrast Regent vs. Chapel? What do you see are the main drawbacks/benefits of each?

Chapel's killer feature, in my opinion, is being able to take something that looks like a simple loop and turn it into distributed code (via domain maps). To the extent that you can write your program in terms of that feature, you can get very clean programs. But once you step outside of that feature, you've basically back to full-on parallel programming (i.e., explicit PGAS programming with nearly every parallel programming construct under the sun). Chapel offers a nice syntax, but it's semantically not so different from writing SHMEM or MPI or one of these other explicitly parallel programming models.

Regent does also support loop auto-parallelization, though it's not the focus of the language and not generally how people write idiomatic Regent programs. Regent fundamentally is a task-based programming model. "Task" is a fancy word for a function that can run in parallel. The key is that (a) tasks execute with sequential semantics, and (b) inside of a task, you can do basically whatever you want. The compiler doesn't need to analyze the code aside from verifying that you're passing data around correctly. This means the set of programs you can write in the "nice" subset of the language is much, much larger. The vast majority of Regent programmers never encounter any explicitly parallel programming constructs, there is no way to make code that deadlocks or races, etc. On the other hand, organizing programs in terms of tasks does still take effort and a degree of cognitive shift. You still have to divide the program into parts that can be parallelized, even if you're not responsible for parallelizing them.

Re: Chapel 1.32

#18
Related. Others?

Chapel: Programming Language for Parallel Computing - https://news.ycombinator.com/item?id=36158373 - June 2023 (2 comments)

AoC 2022 in the Chapel language blog - https://news.ycombinator.com/item?id=34274056 - Jan 2023 (1 comment)

A Look at Chapel, D, and Julia Using Kernel Matrix Calculations - https://news.ycombinator.com/item?id=23403748 - June 2020 (2 comments)

The Chapel Parallel Programming Language - https://news.ycombinator.com/item?id=22708041 - March 2020 (60 comments)

Show HN: Parallac.js – A JavaScript clone of Chapel for distributed computing - https://news.ycombinator.com/item?id=13072797 - Nov 2016 (4 comments)

Chapel: a parallel programming language designed for productivity at scale - https://news.ycombinator.com/item?id=11747709 - May 2016 (19 comments)

New language built from the ground up for productive parallel programming - https://news.ycombinator.com/item?id=11257792 - March 2016 (2 comments)

Learn Chapel in Y minutes - https://news.ycombinator.com/item?id=10029449 - Aug 2015 (13 comments)

Why we need Chapel for large-scale parallel computing - https://news.ycombinator.com/item?id=7972971 - July 2014 (1 comment)

The Chapel Parallel Programming Language - https://news.ycombinator.com/item?id=7951706 - June 2014 (10 comments)

The Chapel Parallel Programming Language - https://news.ycombinator.com/item?id=5047197 - Jan 2013 (2 comments)

Re: Chapel 1.32

#19

Earlier quoted context omitted.

Legion is great! I like that its developers really get HPC. But it is C++, with all of its baggage. (Update: There is also Regent language on top of C++ API, looks interesting).

Hey, I'm the creator of Regent. Feel free to ask me questions.

Cool! I wondered how production code would look like, then I found this: https://github.com/stanfordhpccenter/soleil-x/blob/master/sr..., and was thoroughly impressed.

I wonder if it would be possible to easily set it up on our university's HPC cluster (which is not a supercomputer, but still has SLURM and everything there).

Re: Chapel 1.32

#20

Earlier quoted context omitted.

How would you characterize/contrast Regent vs. Chapel? What do you see are the main drawbacks/benefits of each?

Chapel's killer feature, in my opinion, is being able to take something that looks like a simple loop and turn it into distributed code (via domain maps). To the extent that you can write your program in terms of that feature, you can get very clean programs. But once you step outside of that feature, you've basically back to full-on parallel programming (i.e., explicit PGAS programming with nearly every parallel pro…

Thanks, this is helpful. It seems like (based on your reply) there are people successfully using Regent for scientific computing (I'm assuming); do you think the language is a viable choice for industry, or are there particular milestones you're looking reach?
Post reply on HN