Hacker Newsnew | past | comments | ask | show | jobs | submit | formerly_proven's commentslogin

Idiomatic/natural rust tends to be a lot heavier on allocations and also physically moving objects around than the other two.

Can you elaborate on this? Slightly concerned because I have written (and planning to write more) Rust HPC code

Maybe not what they meant, but Rust sometimes makes it tempting to just copy things rather than fighting the borrow checker. Whereas in C++ you're free to just pass pointers around and not worry about it until / unless your code crashes or gets exploited.

Speaking authoritatively from my position as an incompetent C++ / Rust dev.


I see. Fortunately, I'm aware of that and I don't use clone (unless I intend to) as much. Borrow checker is usually not a problem when writing scientific/HPC code.

Because passing pointers isn't as ergonomic in Rust, I do things in arena-based way (for example setting up quadtrees or octrees). Is that part of the issue when it comes to memory bandwidth?


Stable Rust doesn't have a local allocator construct yet, you can only change the global allocator or use a separate crate to provide a local equivalent.

Right. I have seen Zig where one needs to specify allocators as well. I'm sorry I'm not well versed enough to know how it makes things better for HPC though?

For now my plan is to write fairly similar style code as one may write in C++/Fortran through MPI bindings in Rust.


if you're using thread level parallelism, there is always a benefit to having a per-thread allocator so that you don't have to take global locks to get memory, they become highly contended.

if you take that one step further and only use those objects on a single core, now your default model is lock-free non-shared objects. at large scale that becomes kind of mandatory. some large shared memory machines even forgo cache consistency because you really can't do it effectively at large scale anyways.

but all of this is highly platform dependent, and I wouldn't get too wrapped up around it to begin with. I would encourage you though to worry first about expressing your domain semantics, with the understanding that some refactoring for performance will likely be necessary.

if you have the patience and personally and within the project, it can be a lot of fun to really get in there and think about the necessary dependencies and how they can be expressed on the hardware. there's a lot of cool tricks, for example trading off redundant computation to reduce the frequency of communication.


Thank you for such a great reply!

There's a lot of useful advice here that'll surely come in handy to me later. For now, yeah I'm just going to try to make things work. So far I have mostly written intra-node code for which rayon has been adequate. I haven't gotten around to test the ergonomics of rs-mpi. But it feels quite an exciting prospect for sure.


“Because the remediation component requires SYSTEM, the entire AV needs to run as SYSTEM and we have to unpack malware in the kernel”

The way laws work there is that each law either enumerates the penalties itself or the law of penalties enumerates them. So for each law you only have to check two places to know what the penalties are.

In this case, there are none.


That’s boolean functional completeness, which is kind of a trivial result (NAND, NOR). It mirrors this one insofar as the EDL operator is also a combination of a computation and a negation in the widest senses.

We’ve been talking about this for a good ten years at least and AMD is still essentially in the “concepts of a plan” phase. The AMD GPGPU software org has to be one of the most inconsequential ones at this rate.

At least they finally do something this time. Now torch and whatever transformer stuff runs normally on windows/linux as long as you installed correct wheel from amd's own repository.

It's a huge step though.


This is the fault/price of backwards compatibility. Most users of SQLite should just fire off a few pragmas on each connection:

    PRAGMA journal_mode = WAL
    PRAGMA foreign_keys = ON
    # Something non-null
    PRAGMA busy_timeout = 1000
    # This is fine for most applications, but see the manual
    PRAGMA synchronous = NORMAL
    # If you use it as a file format
    PRAGMA trusted_schema = OFF
You might need additional options, depending on the binding. E.g. Python applications should not use the defaults of the sqlite3 module, which are simply wrong (with no alternative except out-of-stdlib bindings pre-3.12): https://docs.python.org/3/library/sqlite3.html#transaction-c...

Also use strict tables. https://www.sqlite.org/stricttables.html


> PRAGMA journal_mode = WAL

Pretty sure this is a persistent setting. Don't need to set it per-connection.


They might genuinely not exist any more. The world's attention was heavily distracted by the campaign in Iran and the Hormuz strait while Israel never stopped doing their ...stuff... in Lebanon.

This is sadly not that far fetched.

"The Israeli military has demolished entire villages as part of its invasion of south Lebanon, rigging homes with explosives and razing them to the ground in massive remote detonations."

"The demolitions came after Israel’s minister of defence, Israel Katz, called for the destruction of “all houses” in border villages “in accordance with the model used in Rafah and Beit Hanoun in Gaza” to stop threats to communities in northern Israel. The Israeli military destroyed 90% of homes in Rafah, in south Gaza."

https://www.theguardian.com/world/2026/apr/12/how-israeli-of...


So did Munich stop existing after we leveled it in 1944?

And if they do, they probably don't want to be found

Only because they are architecturally unable to not read something.

Well, the LLMs architecturally have to read everything they see. The agents attached to LLMs can choose what to look at.

until one day

Included in the training corpus doesn’t mean perfect or even partial recall.

Turning on mirroring does this for the low, low price of doubling your RAM cost.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: