HPE news. Tech insights. World-class innovations. We take you straight to the source — interviewing tech's foremost thought leaders and change-makers that are propelling businesses and industries forward.
MICHAEL BIRD
Hey, Aubrey.
AUBREY LOVELL
Good afternoon, bird. How is life?
MICHAEL BIRD
Good morning to you. Life is good. Now, I got question for you. How many languages do you speak? Like, did you learn them at school? Are you bilingual?
AUBREY LOVELL
Well, I wouldn't say I'm bilingual. I can get by with Spanish, but very, very basic level. so we have what's called middle school, right? Which is grades basically six through eight. And you had a requirement to do either Spanish or French. And I chose Spanish because I'm in Florida and Spanish is a very prolific language here, right? So, but yeah, what about you?
MICHAEL BIRD
Well, I also am not bilingual. I am English and we are renowned for being terrible at languages. I can speak a little bit of French and even less Spanish and even less German. But yeah, French is probably the language I'm most comfortable with I have friends who can just snap between languages effortlessly and I'm just in awe of those sorts of people
AUBREY LOVELL
Same, same. I have a couple friends that can like fluently speak five or six different languages and to me that's just absolutely amazing. Like I'm in awe of that.
But I can only assume that we're talking about languages today, right?
MICHAEL BIRD
Yeah, although it's slightly different to the language that we're talking about at moment. Sorry. Yeah, we are. Although it's slightly different kind of language we'll be exploring in today's episode. I think you know what we're talking about
I’m Michael Bird.
AUBREY LOVELL
I’m Aubrey Lovell.
And welcome to Technology Now, from HPE.
MICHAEL BIRD
Right Aubrey, so today we are talking all about programming languages. I think you might have guessed that. Now, Aubrey, have you ever written anything in a programming language? Have ever a program, done a bit coding before?
AUBREY LOVELL
You're gonna laugh. I think I've said this before on the podcast. The closest thing I think I've done to that is back in the day when social media first started, you know, and you would have to actually manipulate the code and the HTML to redo your like page, right? So that's as far as I've gotten, but what about you?
MICHAEL BIRD
I I love I love a bit of tinkering. I particularly love using writing writing stuff particularly during the pandemic, when I had a lot of time my hands before my children arrived, I use micro computers, know those single board computers and I ran little programs I made like a little thermometer thing they're basically programs that your phone will solve that problem very easily but sometimes it's fun just to see if you can do it
AUBREY LOVELL
That's really cool.
MICHAEL BIRD
So yeah, I quite enjoyed that. And I guess you've probably heard of things like Python and Java, Fortran, C or C++. They would be described probably as the titans of the programming language industry used all over the world in all sorts of scenarios from hobbyists on their laptops, me I guess, all the way to professionals working on some of the biggest experiments ever created
AUBREY LOVELL
And I guess we have to ask the question, right, why are we talking about programming languages today?
MICHAEL BIRD
Well, we aren’t talking about any of the ones I’ve just mentioned because we’re actually exploring the (relatively) new kid on the block, a language called Chapel, and so, to do that, I spoke to Brad Chamberlain, a Distinguished Technologist here at HPE and a founding member of the Chapel programming language project where he has been the Technical Lead since 2006.
AUBREY LOVELL
But before we get to Brad, I want to look back at what could be considered the first ever computer programme and we know what that means right?
It’s time for…
Technology then.
AUBREY LOVELL
you've heard of Ada Lovelace, right?
MICHAEL BIRD
Yes, I have, one of the pioneers in the world of computer programming.
AUBREY LOVELL
So basically for those of you listening who haven't come across her, she was a British mathematician born in 1815 and was the first computer programmer. Hashtag women rule..
her program was designed for a machine known as the analytical engine, which was designed by the inventor Charles Babbage. . Now, this machine was the first computer ever built and instructions were provided using punch cards. Or I think maybe in the UK, you guys say punched cards. We've put a picture in the show notes, too, if you want to check that out yourself.
And Michael, know we're kind of looking at this now in our script. What do you think of this?
MICHAEL BIRD
Yeah. I think it doesn't look like a computer. It looks a little bit like a radiator. A radiator with like half radiator half train. Yeah, and then I think if you scroll down I can see there's some punch cards as well. I mean they look like punch cards.
AUBREY LOVELL
Yeah, it's it's very to me very medieval, right? Like it's just very like very mechanical manual, like something that you'd see like it feels like hundreds of years ago, but technically not. I don't know. I mean, it's just it's kind of scary looking, but also I get it. You know, that was the vibe back then.
MICHAEL BIRD
It's got sort of steampunk vibes
AUBREY LOVELL
Yes, that's true too. But anyways after translating a French text about the analytical engine, Lovelace realized that this machine could be used for more than just basic numerical calculations. She created a step-by-step process, which we would now call an algorithm, right, to calculate Bernoulli numbers. And at the time, she wasn't recognized for her work. However, Lovelace is now world famous for her work in the 1970s.
The programming language Ada was named after her, which is super, super cool. Imagine getting an entire language named after you.
MICHAEL BIRD
Yeah, my cousin C++, he's got a language named after him, so... It's a terrible joke, isn't it? It's a terrible, terrible joke.
AUBREY LOVELL
Ha ha ha ha ha
MICHAEL BIRD
now from the first programming language to a more recent one, if you've not heard of it, Chappell is a language that's been around for about 20 years. And since 2006, Brad Chamberlain has been the technical lead on the project. He's also a distinguished technologist here at HPE. Now, when I spoke to him, the first thing I want to know was pretty simple. What is Chappell and why do people use it?
BRAD CHAMBERLAIN
Chapel is a programming language, that was designed, specifically for the task of making parallel programming much easier than it is today, whether that's on your laptop, on your desktop, or on the largest supercomputers built by HPE or by other vendors.
MICHAEL BIRD
Okay. And why does it exist? why couldn't you just, use what? programming languages that are already out there,
BRAD CHAMBERLAIN
Yeah, so you definitely can use the program languages that are out there. what kicked Chapel off was a recognition within our team that the ways that people program large scale supercomputers is very different than the kind of programming you learn, say as a undergraduate in college. And so you could graduate and be a great programmer, and then the first day you're on a supercomputer have to learn a bunch of new things.
We use a very specialized set of technologies to program them, and they tend to be fairly low level and fairly error prone. And our goal with chapel was to invent a language that essentially made parallel programming more approachable, more first class, more optimizable by the compiler, less low level.
MICHAEL BIRD
So to like a lay person like me, I learned Python at school. So how does it differ to like a programming language like Python that like most people would've come across,
BRAD CHAMBERLAIN
yeah. Yeah. So Python's a really good touch point because Python I think is a great example of a language that people find very easy to read and write. And I think that's led to a lot of its popularity. But if you look at Python's performance or its support for parallelism, it's not really so good in those areas.
And in fact, you can write fast Python programs, but often the thing that makes them fast is that under the covers they're written in something else like C or c plus. So we wanted to create a language that was, is easy to read and write is Python. Yet that performed and scaled like a CC plus fortran.
Not to mention all the technologies that people use to program large scale supercomputers and get performance at those massive scales.
MICHAEL BIRD
Yeah, I've definitely written a Python program that has been very slow. 'cause I've written it very poorly and
lots of dependencies and just oh, quick and dirty. Okay. You mentioned parallel computing. Can you just quickly define what we mean by parallel computing?
BRAD CHAMBERLAIN
Yeah, of course. So I think of parallel computing as being using multiple compute resources in order to solve a problem faster or perhaps a larger problem than you would be able to otherwise. an analogy I like to use is, if you had some task in your life that was gonna take you a hundred hours, if you had a hundred friends help you with it, or I guess 99, if you're still helping, you could do it in one hour.
That's sort of the promise is if we apply all these resources, can we do it faster? And with parallel computing, it's the same idea. Can we use multiple processors to solve a problem faster, to simulate something in science faster? Or by using the multiple memories of compute nodes, can we solve a much bigger problem than we would be able to otherwise?
MICHAEL BIRD
But from my understanding, serial computer doesn't exist really. Like most devices we have laptops, might even my phone, I'm guessing that has some element of parallel computing in it.
BRAD CHAMBERLAIN
Completely. Yeah. And what's really interesting is when we first started chapel, that wasn't really the case yet. We were all still using generally single core processors. But over time, parallel computing has gone from this thing that sort of, you needed access to a supercomputer or an HPC center in order to access to something that everybody has, as you say, on your laptop, you've got multi-core processors. Anybody now who has a little bit of money can buy some time on the cloud. And that's in a sense, like a supercomputer in many respects. So yeah, parallelism is everywhere now. And that's one of the things that I think makes Chapel a really interesting language at this point, is it was designed specifically for parallelism and makes it much easier than I would say conventional approaches.
MICHAEL BIRD
and I guess like its niche is that it's just very good at parallel computing or it's maybe easier or more efficient to write programs that run for parallel computing.
BRAD CHAMBERLAIN
That's right. And to be fair so language I've been talking about cc plus fortran. Those were developed before. App perils was much of a thing. But peril has been retroactively added into them. And similarly, more modern languages like Python and Java have perils built into them as well.
I think the thing that really makes Chapel unique here is a lot of those languages just deal with perils and, but don't really deal with questions of locality, which become a really big issue when you're on a larger scale system, like a supercomputer or a cloud instance. And you need to worry about where are things running and where is the data allocated.
Because you generally want your computations to be near the data they're accessing for the best performance. And so in addition to having parallel concepts in it, chapel also has concepts for reasoning about locality and how things are mapped to the machine. that combination of things is what makes it really unique, I would say.
MICHAEL BIRD
So you can dial in how maybe a specific line of code or a specific operation or whatever is being run within the computer. have I got that right? Yeah,
BRAD CHAMBERLAIN
Yeah, exactly. So you can say things like, say I'm on a 16 node system. I could say like, well, I'm node three. I'd like to go run a task to do, you know, this while I'm node five, I wanna go run something else. I can also say, allocate this data on that node or this node, or in the GPU memory of that node.
Or I can say things like, take this array and distribute its elements across all of my nodes and the language will take care of all the bookkeeping for that for you.
MICHAEL BIRD
bit like a mixing desk versus just using a simple microphone. Maybe that's just because I make podcasts.
BRAD CHAMBERLAIN
Think that’s a good analogy.
MICHAEL BIRD
Why isn't everyone using it? If could do similar things to Python and c plus. Like why? why isn't everyone using it basically?
BRAD CHAMBERLAIN
So I think there are a few reasons for that. One of them is that, our sweet spot is really the scalable parallel computing. So once you go beyond just your laptop and up to larger systems. And frankly that still is a niche area of programming. Most of us are programming laptops.
Those who use the cloud are often using technologies developed by others and just leveraging those frameworks. So I think part of it is just that we're, a specialized enough area that it's not a massive community to begin with. The second part of it is , even if you get everything technically right in language, there's a really big social challenge to adoption.
I could come to you and say, this is the best language ever. But in addition to wanting to be convinced of that, you also need to know if I write a big program in it, is it gonna be around in five or 10 years? If are other people gonna be using it? Am I gonna be the only member of the community or will it be a rich ecosystem?
And those social challenges are difficult for any language to overcome and get to the point of adoption. And maybe particularly if you're sort of as specialized as we are in terms of what we're really about is scalable perils in which, again, small community,
MICHAEL BIRD
Huh? Yeah, because I suppose you don't wanna be spending lots of time developing a tool in a particular programming language, and then yeah, nobody else uses it or it goes outta fashion or whatever.
BRAD CHAMBERLAIN
Yeah. So I think any technology has this kind of early adopter problem, right? But I think in some ways languages are stickier than many, right? If I buy a new device and it doesn't work out or whatever, I've wasted a little money and maybe some time, but I can buy a new device or whatever. With languages, once you've started investing in it, you've written a thousand lines of code, a hundred thousand lines of code.
You really want that language to stick around 'cause you don't want to have to rewrite that code. And that stickiness is definitely one of the challenges to get that ball rolling, right? That's the social challenge that we're talking about here.
MICHAEL BIRD
So why would an organization, or why would somebody decide to use this language versus what they're using at the moment? why would they switch?
BRAD CHAMBERLAIN
Yeah. So I think switching is challenging. If you have an existing code base that's working well for you. Switching always means either rewriting it, which again, people generally don't want to do, or inter-operating, which is an option in chapel. So if you have some new pieces you wanted to write in your code, you might write those in chapel and start integrating them as a library or something like that.
Or maybe your old code becomes the library. So one of my favorite examples of a team that was interested in using it was a research team in Canada that was developing computational fluid dynamics codes for aircraft design.
And their old code was becoming difficult and unmaintainable, and they knew they needed to do a version 2.0, rewrite it from scratch. The students were advocating for chapel because they had seen and heard about it. They liked what they saw, and they thought it would make their lives much easie r.
The professor was playing the appropriate role of. Being a bit more conservative and saying the world's using C++ and MPI, surely that's what we should use. They did a little bake off and the students convinced the professor to give it a try. And the result of that is they were able to get a lot more done, much more quickly than they would've been able to otherwise.
And in the end, the professor became a believer where he's had an anecdote, he is used in talks where they had master students who could complete projects in three months that it would've taken them two years prior to that. And so that's an example of the kind of productivity that, a language that's purpose built for parallel computing can help with.
And it's that kind of experience we want to replicate with other users as well.
MICHAEL BIRD
Which sort of feels like the way that the world of computing is going generally. we've talked about this on the podcast before where it felt like the world of computing was get as fast a processes as you possibly can. Don't worry about how much power it uses, just get as much as you possibly can to throw at this task.
Whereas nowadays, I think, even in mobile phones and laptops, you're having specific chips for specific purposes and they can do it way more efficiently and use less power. Is that what's happening here? Is that actually. If you can use a language that's almost designed for this particular task, you can do that task more efficiently, use less compute, so therefore you've got more compute to be able to maybe do more of a task or do the task faster.
Is that sort of what we're talking about here?
BRAD CHAMBERLAIN
I think that's a reasonable way of looking at it. I guess I wouldn't say using less compute because in parallel computing, usually you're wanting to use all of the compute as much as you can, as intensely as you can to get the problem solved as quickly as possible. Certainly, I guess I would think of it as traditionally you would manually be responsible yourself for how you take your computation and divide it up across your cores or your processors, how you do that perils and how you divide the data.
And the goal here is to have the language shoulder more of that burden for you and have the compiler help optimize it for you. Whereas traditionally most performance oriented programmers, especially in parallel competing, are doing a lot of that tuning and orchestration themselves manually.
MICHAEL BIRD
So can you just talk about the coral reef health story?
BRAD CHAMBERLAIN
Yeah, A few years ago we had the opportunity to host a scientist from a field who maybe wanted to learn chapel and apply it to their field.
And one of the several computations this scientist arrived with, Scott Bachman's his name, was an image satellite analysis where they basically take satellite images of coral reefs and they study the images to determine the biodiversity of the coral reef.
And when he arrived, this is a code that I can never quite remember. It was either written in MATLAB or Python. But essentially one of these interpreted very high level, very productive languages that also isn't very fast. And he started working on porting that to chapel. And he got the program from a point that, to run on one of their full-size problems went from like hours or days to minutes.
we worked with him to take it further and run it on GPUs, where at that point we'd only been running on CPUs and that went much faster and actually enabled them to start running algorithms that they didn't think they would ever be able to run because they thought they were just too computationally complex.
MICHAEL BIRD
So it seems like the story here is that, you could do more with what you have, if you can put it into a code base that's you can optimize it, you can just do a lot more with the compute you have available, whether that is do it faster or run more algorithms , run more stuff basically.
BRAD CHAMBERLAIN
That's right, and I think this is a great example of, a scientific community that isn't trained in computer science, so maybe doesn't know all of the tricks and low level ways to do parallel programming and get performance. To be clear, there are other ways they could have done this. But what they're used to is these high level frameworks like again, MATLAB or Python.
We work to meet people at that level of expression, and so they found Chapel very approachable and adoptable where other technologies they might not have. And through that, as you said, we're able to get this nice performance and productivity benefit together.
MICHAEL BIRD
So we talked about open source like why is being open source so important to chapel? Let's talk about from a democratization .
BRAD CHAMBERLAIN
Yeah, the way I think of it is supercomputing for most of my career, again, has been this sort of special thing. You had to a, have access to these special systems. They were just out there and, if you were at a university or a DOE center, you could access them. Most people couldn't, we're now living in a time where everybody has parallel computers on their desktop.
Everyone has access to the cloud and making something that is both useful for the HPC community. It also has these, for lack of a better term, trickle down effects to conventional open source programmers or mainstream programmers is really important, I think to basically show people that there are better ways to do parallel computing and scalable parallel computing, and that these larger systems are not off limits them or inaccessible.
MICHAEL BIRD
and I suppose you haven't gotta pay for a license to be able to start playing around with it.
BRAD CHAMBERLAIN
That's right. So being in open source languages, I would say in some sense, virtually necessity today, people really just don't pay for languages anymore. Think about the last time you paid to use Python or a C compiler or something. But it's also a smart move, like it is a way for us to get what we're doing out in front of anybody who wants to take a look at it.
And to grow a community, to get developers in the community contributing back and making it more successful than we could do on our own. So it's both kind of a necessity and a really good strategy for us, I think.
MICHAEL BIRD
chapel's been around since 2002, how have things changed in recent years?
BRAD CHAMBERLAIN
So one of the things we've been working on most recently is there is a new foundation that's been started within the Linux Foundation called the High Performance Software Foundation, and this is essentially a foundation that is devoted to nurturing open source software for parallel computing, particularly on HPCs and to broaden the community a lot of the same themes that I was just talking about personally.
So this’ sort of been a big recent effort and I think the next step in our development as an open source project and something we're very excited about.
AUBREY LOVELL
So Michael, you're obviously like way more versed in this than I am in terms of programming and really the back-end coding mechanisms. Like fundamentally, we all know the importance of that and how it works. like, what were some of the key takeaways out of this that you thought were like, wow, that's really next level of the direction that we're going?
MICHAEL BIRD
Well, I think that the big key takeaway here is the concept of having a programming language that's purpose-built for parallel computing. And why that's important, particularly today, is that actually we're seeing increasing use of high-performance computing supercomputers. We've written an episode about exascale computers, other supercomputers, and actually There's also a conversation around efficiency. Like, do more with what you have, with the resources that you have? So I think the key thing here is like, it's just about making the most of what you have. And actually, if there is the scope to do it, you know, if you can run your program within Chappell or if you can write your program using Chappell, then actually you can potentially get a bit, potentially, you know, do a bit more with less.
AUBREY LOVELL
Yeah, I think it's interesting, you know, especially when you talk about HPC and the direction of how we're going with high performance compute, right? Like how this could factor in and also the, I guess, accessibility, the translation of that across all these different systems, I always find fascinating because it's not like a one size fits all, right? So It's definitely interesting to hear.
MICHAEL BIRD
Now, Aubrey, during technology then, you mentioned that the programming language Ada was named after Ada Lovelace. I thought you might be interested to know where Chappell's name came from.
AUBREY
Ooh, yes, let's hear it. And I'm sure it's not from the singer.
BRAD CHAMBERLAIN
The project that started chapel was called Cascade. And I remember when my mentor came to me and said, we're gonna call the language Chapel. It stands for Cascade High Productivity Language. And the Cascade High Predictive Language part I liked, but I was just like, oh my gosh, chapel's a terrible name.
We can't use that. And he was like suggest a better one and we'll switch to that. And we failed to do that before the name stuck. And to this day, I will tell you that as a community, we're not very happy with our name. Every few years we get into a conversation about should we rename it?
Can we afford to rename it? Do we gain more by renaming it, then by sticking with it? So yeah, that's a, an ongoing thing.
AUBREY LOVELL
Okay that brings us to the end of Technology Now for this week.
Thank you to our guest, Brad Chamberlain
And of course, to our listeners.
Thank you so much for being a part of our journey.
MICHAEL BIRD
If you’ve enjoyed this episode, please do let us know – rate and review us wherever you listen to episodes and if you want to get in contact with us, send us an email to technology now AT hpe.com and don’t forget to subscribe so you can listen first every week,
Technology Now is hosted by Aubrey Lovell and myself, Michael Bird
This episode was produced by Harry Lampert and Izzie Clarke with production support from Alysha Kempson-Taylor, Beckie Bird, Allison Gaito, Alissa Mitry and Renee Edwards.
AUBREY LOVELL
Our social editorial team is Rebecca Wissinger, Judy-Anne Goldman and Jacqueline Green and our social media designers are Alejandra Garcia, and Ambar Maldonado.
MICHAEL BIRD
Technology Now is a Fresh Air Production for Hewlett Packard Enterprise.
(and) we’ll see you next week. Cheers!