Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)MI
Posts
0
Comments
242
Joined
2 yr. ago

  • Jesus Christ, the usability nightmare of this website is worse than the goofy animated GIF they think is an exaggeration.

    www.wired.com##.sticky-box to get rid of the autoplaying video go fuck yourselves, www.wired.com##.journey-unit__container to get rid of the assorted gigantic flyover bullshit.

  • Two fantasies - one, that anybody's been persecuted for posting on what was the most popular communication tool in the world, and two, that a narcissist ignoring his own bills will ever cover yours.

    People don't get fired for where they post.

    People get fired for what they post.

  • "Here's all the ways we tell people not to use parallelism."

    I'm sorry, that's not fair. It's only a fraction of the ways we tell people not to use parallelism.

    Multi-threading is difficult, which is why I said it's a fucking obstacle. It's the wrong model. The fact you'd try to "slap it on" is WHAT I AM TALKING ABOUT. You CANNOT just apply more cores to existing linear code. You MUST actively train people to write parallel-friendly code, even if it won't necessarily run in parallel.

    Javascript is a terrible language I work with regularly, and most of the things that should be parallel aren't - and yet - it has abundant features that should be parallel. It has absorbed elements of functional programming that are excellent practice, even if for some goddamn reason they're actually executed in-order.

    Fetches are single-threaded, in Javascript. I don't even know how they did that. Grabbing a webpage and then responding to an event using an inline function is somehow more rigidly linear than pre-emptive multitasking in Windows 95. But you should still write the damn things as though they're going to happen in parallel. You have no control over the order they happen in. That and some caching get you halfway around most locks.

    Javascript, loathesome relic, also has vector processing. The kind insisted upon by that pedant in the other subthread, who thinks the 512-bit vector units in a modern Intel chip don't qualify, but the DSP on a Super Nintendo does. Array.forEach and Array.map really fucking ought to be parallelisable. Google could use its digital imperialism to force millions of devs to adopt better standards, just by following the spec and not processing keys in a rigid order. Bad code treating it like a simplified for-loop would break. Good code... wouldn't.

    We want people to write that kind of code.

    Not necessarily code that will run in parallel. Just code that could.

    Workload-centric thinking is the only thing that's going to stop "let's add a little parallelism, as a treat" from producing months of needless agony. Anything else has to be dissected, warped beyond recognition, and stitched back together, with each step taking more effort than starting over from scratch, and the end result still being slow and unreadable and fragile.

  • "The way we teach this relationship causes harm."

    "Well you don't understand this relationship."

    "I do, and I'm saying: people plainly aren't getting it, because of how we teach it."

    "Well lemme explain the relationship again--"

    Nobody has to tell people not to use parallelism. They just... won't. In part because of how people tend to think, by default, and in part because of how we teach them to think.

    We would have to tell students to use parallelism, if we expect graduates to choose it freely. It's hard and it's weird and you can't just slap it on at the end. It should become what they do first.

    I am telling you in some detail how focusing on linear performance, using the language of the nineteen goddamn seventies, doesn't need to say multi-threading isn't worth it, to leave people thinking multi-threading isn't worth it.

    Jesus, even calling it "multi-threading" is an obstacle. It makes parallelism sound like some fancy added feature. It's the version of parallelism that shows up in late-version changelogs, when for some reason performance has become an obstacle.

  • I am a computer engineer. I get the math.

    This is not about the math.

    Speeding up a linear program means you've already failed. That's not what parallelism is for. That's the opposite of how it works.

    Parallel design has to be there from the start. But if you tell people adding more cores doesn't help, unless!, they're not hearing "unless." They're hearing "doesn't." So they build shitty programs and bemoan poor performance and turn to parallelism to hurry things up - and wow look at that, it doesn't help.

    I am describing a bias.

    I am describing how a bias is reinforced.

    That's not even a corruption of Amdahl's law, because again, the actual dude named Amdahl was talking to people who wanted to build parallel machines to speed up their shitty linear code. He wasn't telling them to code better. He was telling them to build different machines.

    Building different machines is what we did for thirty or forty years after that. Did we also teach people to make parallelism-friendly programs? Did we fuck. We're still telling students about "linear portions" as if programs still get entered on a teletype and eventually halt. What should be a 300-level class about optimization is instead thrown at people barely past Hello World.

    We tell them a billion processors might get them a 10% speedup. I know what it means. You know what it means. They fucking don't.

    Every student's introduction to parallelism should be a case where parallelism works. Something graphical, why not. An edge-detect filter that crawls on a monster CPU and flies on a toy GPU. Not some archaic exercise in frustration. Not some how-to for turning two whole cores into a processor and a half. People should be thinking in workloads before they learn what a goddamn pointer is. We betray them, by using a framing of technology that's older than disco. Amdahl's law as she is taught is a relic of the mainframe era.

    Telling kids about the limits of parallelism before they've started relying on it has been an excellent way to ensure they won't.

  • You can't unfuck that chicken.

    We know the corporation thinks it can own a community.

    We saw how the corporation treats people who put in immense quantities of work, FOR FREE, making the site worth using.

    These dumb motherfuckers made it impossible for me to come back without it feeling like a betrayal. I'm out. Sixteen years last month, and I am just fuckin' done. Any time I'm there again is either an accident, or an effort to preserve my own goddamn records from the last decade and a half.

    Digg losing to reddit didn't mean Digg went away. The empty box was never the point. It's the users, stupid. And the people who just want a safe spot to shoot the shit with one another don't need some fucking asshole deciding they're doing it wrong. Certainly not if that useless whipped bastard declares that half the goddamn site will be ignored, when they demand the tiniest concession to reality. Do they know what reddit is for?! The whole website is predicated on democratized opinion, gated by moderator approval, and this absolute dolt brushed aside all levels of power, to declare that no action could possibly change one iota of corporate say-so.

    K bye, fuckhead. Good luck with your box full of trolls and bots. Hope your IPO goes swimmingly, now that we've all seen the revenue-per-user figures putting reddit somewhere below advertising on bus-stop benches, before a critical mass of regulars just fuckin' bounced.

    And then you deleted all the money people gave you directly.

  • This is rapidly going to stop being a polite interaction if you can't remember your own claims.

    SIMD predates the term vector processing, and was in print by 1966.

    Vector processing is at least as old as the Cray-1, in 1975. It was already automatically parallelizing what would've been loops on prior hardware.

    Hair-splitting about whether a processor can use vector processing or exclusively uses vector processing is a distinction that did not exist at the time and does not matter today. What the overwhelming majority of uses refer to is basically just SIMD extensions. Good luck separating the two when SIMT is a thing.