Live data from Hacker News

Viewing profile — shwestrick

shwestrick

HN member
Joined
Wed, Aug 12, 2020, 2:09 PM UTC
HN karma
343
Public activity
53 items

About shwestrick

No profile information was provided.

Recent public activity

  1. 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 …

  2. 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 …

  3. 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…

  4. 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…

  5. 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 …

  6. 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…

  7. 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…

  8. 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…

  9. 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))`…

  10. 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., …

  11. 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…

  12. 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…

  13. 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…

  14. 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…

  15. comment
    Comment #34815399

    Some of us are still using SML for research and teaching, e.g. https://github.com/mpllang/mpl

  16. 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.

  17. 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…

  18. 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

  19. 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+…

  20. 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…

  21. 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…

  22. 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…

  23. 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…

  24. comment
    Comment #33056547

    Whoa, uhh, I mean, that's an extremely unfair and inaccurate characterization.

  25. 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.