Live data from Hacker News

I want a good parallel language [video]

youtube.com

41–50 of 69 posts

Re: I want a good parallel language [video]

#41
post #36

Earlier quoted context omitted.

My issue with SQL is lack of composability and difficulty of debugging intermediate results.

Yes, SQL is poor. What could be good is relational + array model. I have some ideas on https://tablam.org , and building not just the language but the optimizer in tandem I think will be very nice.

The programming style reminds me of the old days of clipper and xbase family, even ABAP. I like the syntax.

Re: I want a good parallel language [video]

#42

Earlier quoted context omitted.

Right. This is the binary tree version of the algorithm, and is nice and concise, very readable. What would take it to the next level for me is the version in the stack monoid paper, which chunks things up into workgroups. I haven't done benchmarks against the Pareas version (unfortunately it's not that easy), but I would expect the workgroup optimized version to be quite a bit faster.

I've been playing with one using scans. too bad that's not really on the map for architectural reasons, it opens up a lot of uses.

Yeah, monoid prefix sum is a surprisingly powerful tool for parallel and incremental algorithm design!

Re: I want a good parallel language [video]

#43
post #4

SQL. It is a joke, but an SQL engine can be massively parallel. You just don't know it, it just gives you what you want. And in many ways the operations resembles what you do for example in CUDA. CUDA backend for DuckDB or Trino would be one of my go-to projects if i was laid off.

My issue with SQL is lack of composability and difficulty of debugging intermediate results.

The standard things that someone should always say when someone brings up this problem is:

• Datalog is much, much better on these axes.

• Tutorial D is also better than SQL.

Re: I want a good parallel language [video]

#44
post #5

There were a few languages designed specifically for parallel computing spurred by DARPA's High Productivity Computing Systems project. While Fortress is dead, Chapel is still being developed.

Those languages were not effective in practice. The kind of loop parallelism that most people focus on is the least interesting and effective kind outside of niche domains. The value was low. Hardware architectures like Tera MTA were much more capable but almost no one could write effective code for them even though the language was vanilla C++ with a couple extra features. Then we learned how to write similar softwa…

Maybe we can find better abstractions. Software transactional memory seems like a promising candidate, for example. Sawzall/Dremel and SQL seem to also be capable of expressing some interesting things. And, as RoboToaster mentions, in VHDL and Verilog, people have successfully described parallel computations containing billions of concurrent processes, and even gotten them to work properly.

Re: I want a good parallel language [video]

#45
post #27
post #4

SQL. It is a joke, but an SQL engine can be massively parallel. You just don't know it, it just gives you what you want. And in many ways the operations resembles what you do for example in CUDA. CUDA backend for DuckDB or Trino would be one of my go-to projects if i was laid off.

If you want to work in data engineering for massive datasets (many petabytes) pls hit me up!

Sorry, wrong continent :)

Re: I want a good parallel language [video]

#48
post #4

SQL. It is a joke, but an SQL engine can be massively parallel. You just don't know it, it just gives you what you want. And in many ways the operations resembles what you do for example in CUDA. CUDA backend for DuckDB or Trino would be one of my go-to projects if i was laid off.

Even in this thread people underestimate how good e.g. DuckDB can be if you swallow its quirks. Yeah SQL has many problems, but with a slightly extended language with QoL features and seamless parallelism DuckDB is extremely productive if you want to crunch bunch of numbers in the order of minutes, hours etc (not real time).

Sometimes I have a problem, I just generate bunch of "possible solutions" with a constraint solver (e.g. Minizinc) which generates GBs of CSVs describing bunch of solutions, then let DuckDB analyze which ones are suitable, DuckDB is amazing.

Post reply on HN