Viewing profile — shwestrick
shwestrick
HN member- Joined
- Wed, Aug 12, 2020, 2:09 PM UTC
- HN karma
- 343
- Public activity
- 53 items
- HN profile
- View on Hacker News ↗
About shwestrick
No profile information was provided.
Recent public activity
-
comment
Comment #44818805
I like this example. The client who didn't notice a difference would probably call it a bugfix. The client whose software got ever-so-slightly more reliable probably would call it …
-
comment
Comment #42483769
Worth mentioning that you can always safely switch between AoS and SoA. Either can represent the other; all you've done is transpose the data. The same is not true of AoE/EoA. The …
-
comment
Comment #41235389
For those curious, this implementation is based on a recent line of research called "heartbeat scheduling" which amortizes the overheads of creating parallelism, essentially accomp…
-
comment
Comment #40393603
Nowadays 210 is actually parallel! You can run 210-style code using MaPLe ( https://github.com/MPLLang/mpl ) and get competitive performance with respect to C/C++. If you liked 210…
-
comment
Comment #39885729
The two systems have very different tradeoffs. A few things in particular: * Separate compilation vs whole-program compilation. OCaml uses separate compilation and therefore has a …
-
comment
Comment #39885519
I'm one of the authors of this work -- I can explain a little. "Provably efficient" means that the language provides worst-case performance guarantees. For example in the "Automati…
-
comment
Comment #39599772
Enjoyed playing with this! N-queens search is another nice recursive example. E.g. call this with nqueens(0, 5, []) function nqueens(i:number, n:number, queens: number[][]) { if (i…
-
comment
Comment #38571438
On modern multicore hardware this will be memory-bound; the amount of computation per byte is pretty small (just a few arithmetic instructions on average). My intuition is that the…
-
comment
Comment #38560001
It's worth noting that you can solve these linear recurrences, `x(t) = a(t)x(t-1) + b(t)`, using a single parallel prefix sum where the elements are the input tuples `(a(t), b(t))`…
-
comment
Comment #37071347
Tons and tons of parallel algorithms use prefix sums. Typically the most common use is to compute a collection of offsets in parallel. Some examples: - compact a hash table (i.e., …
-
comment
Comment #36325229
Parallelism is only about performance, that's it. If you need something to go faster, parallelism is an option. Looking into the future, parallelism is one of the only remaining te…
-
comment
Comment #36070785
It's a doctoral degree with a heavy emphasis on pedagogy and teaching. From https://www.cmu.edu/math/grad/phd/index.html : > The Doctor of Arts degree shares all requirements and s…
-
comment
Comment #35495224
More and more people nowadays are programming at high levels of abstraction. If you're designing the frontend of a website, or making a mobile game, or developing a stock trading a…
-
comment
Comment #35251483
in latex, when typesetting math, by default, parentheses (and other brackets) are always a constant height. So if you put something which is taller than one line in between parenth…
-
comment
Comment #34815399
Some of us are still using SML for research and teaching, e.g. https://github.com/mpllang/mpl
-
comment
Comment #33869672
That's not a useful perspective. It doesn't matter what the goal of the law is; it matters what effect the law has.
-
comment
Comment #33869216
You seem to be interested in this question: "If I bike without a helmet, how much more likely am I to be injured than if I bike with a helmet?". And of course, the answer is that y…
-
comment
Comment #33132610
Private deques can still be very effective for work-stealing, both in theory and practice! This paper comes to mind: https://hal.inria.fr/hal-00863028/document
-
comment
Comment #33098168
MLton also has perhaps the most impressive performance of any existing functional language implementation. It generates code that easily competes with hand-optimized low-level C/C+…
-
comment
Comment #33057843
When visiting vertices in parallel, there might be multiple potential parents that all attempt to visit the same vertex simultaneously. So, we need a way of picking which parent "w…
-
comment
Comment #33057643
Perfect. Yes, that's exactly right -- if the language semantics is able to guarantee a set of possible values for a data-racy read, then it doesn't catch fire. The catch-fire termi…
-
comment
Comment #33056694
That's a nice example. It seems that data races in Java don't "catch fire"; is that correct? The catch-fire problem is pretty bad for languages like C/C++, which have undefined beh…
-
comment
Comment #33056597
Ah I see. That's a fair point! When talking about this kind of stuff to people who are unfamiliar with, say, lock-freedom, I've found that "non-determinism" is too vague --- people…
-
comment
Comment #33056547
Whoa, uhh, I mean, that's an extremely unfair and inaccurate characterization.
-
comment
Comment #33056040
Yes! It's a very similar idea. If I remember correctly, LVars are restricted enough to enforce determinism statically, which is quite nice.