It's been nearly a decade now, but we shared a machine with 128 newish physical cores, a terabyte of RAM, and a lot of fast disk. Anyone with a big job just coordinated with the 1-2 other people who might need it at that level and left 10% of the RAM and disk for everyone else (OS scheduling handled the CPU sharing, though we rarely had real conflicts).
It's firmly in "not a laptop" scale, and for anything that fit it was much faster than all the modern cloud garbage.
The other lab I was in around that time just collected machines indefinitely and allocated subsets of them for a few months at a time (the usual amount of time a heavily optimized program would take to finish in that field) to any Ph.D. with a reasonable project. They all used the same in-house software for job management and whatnot, with nice abstractions (as nice as you can get in C) for distributed half-sparse half-dense half-whatever linear algebra. You again only had to share between a few people, and a few hundred decent machines per person was solidly better than whatever you could do in the cloud for the same grant money.
It's firmly in "not a laptop" scale, and for anything that fit it was much faster than all the modern cloud garbage.
The other lab I was in around that time just collected machines indefinitely and allocated subsets of them for a few months at a time (the usual amount of time a heavily optimized program would take to finish in that field) to any Ph.D. with a reasonable project. They all used the same in-house software for job management and whatnot, with nice abstractions (as nice as you can get in C) for distributed half-sparse half-dense half-whatever linear algebra. You again only had to share between a few people, and a few hundred decent machines per person was solidly better than whatever you could do in the cloud for the same grant money.