Live data from Hacker News

Threadripper 3990X: The Quest To Compile 1B Lines Of C++ On 64 Cores

blogs.embarcadero.com

101–110 of 187 posts

Re: Threadripper 3990X: The Quest To Compile 1B Lines Of C++ On 64 Cores

#101
post #50

Earlier quoted context omitted.

SSDs help, but nothing beats core count X clock speed when compiling. Source code files are relatively small and modern OSes are very good at caching. I ran out of SSD on my build server a while ago and had to use a mechanical HDD. To my surprise, it didn’t impact build times as much as I thought it would.

Hmm. Maybe the tradeoff has changed since I last tested this (to be fair, a few years ago). But I'm also not focused on build servers especially, it's always been possible to make those reasonably fast. Unless you have a very specific sort of workflow anyway, your devs are doing way more local builds than on the server and that sped up a ton moving to SSD, in my experience anyway. YMMV of course.

Well, you can always move your code to a ramdisk, I suspect any C(++) isn't more than a few GB anyway ?

Re: Threadripper 3990X: The Quest To Compile 1B Lines Of C++ On 64 Cores

#102

Earlier quoted context omitted.

SLC seems to be going away pretty quickly, if it hasn't already been phased out. It just can't produce the price / GB of the better tech. Also, that article you linked is almost 10 years old. You're best bet for long-term reliability is to buy much more capacity than you need and try not to exceed >50% capacity for high write frequency situations. I keep an empty drive around to use as a temp directory for compiling,…

I recently bought an external 32GB SLC SSD (in the form factor of an USB pendrive). Its random read/write speeds are quite insane (130+ MB/s both) while consumer SSDs like the Samsung 850 Evo barely manage 30 MB/s read/write. It's also advertised as very durable. I plan on using a couple of those as ZFS metadata and small block caches for my home NAS, we'll see how it goes but people generally and universally praise…

> I recently bought an external 32GB SLC SSD (in the form factor of an USB pendrive). Its random read/write speeds are quite insane (130+ MB/s both)

Which brand/spec?

Re: Threadripper 3990X: The Quest To Compile 1B Lines Of C++ On 64 Cores

#104
A Billion lines, eh?

  int
  main
  ()
  {
    /* 
     _______ _     _       _               _                                                               
    |__   __| |   (_)     (_)             | |                                                              
       | |  | |__  _ ___   _ ___    __ _  | | ___  _ __   __ _   _ __  _ __ ___   __ _ _ __ __ _ _ __ ___  
       | |  | '_ \| / __| | / __|  / _` | | |/ _ \| '_ \ / _` | | '_ \| '__/ _ \ / _` | '__/ _` | '_ ` _ \ 
       | |  | | | | \__ \ | \__ \ | (_| | | | (_) | | | | (_| | | |_) | | | (_) | (_| | | | (_| | | | | | |
       |_|  |_| |_|_|___/ |_|___/  \__,_| |_|\___/|_| |_|\__, | | .__/|_|  \___/ \__, |_|  \__,_|_| |_| |_|
                                                          __/ | | |               __/ |                    
                                                         |___/  |_|              |___/                   
    */
    return 0;
  }

Re: Threadripper 3990X: The Quest To Compile 1B Lines Of C++ On 64 Cores

#105
Does anyone have reviews of this on their JS test suite. The quicker the tests run the better my life, I have around 2000 quite slow tests... 76s MacBook 15” 2016, 30s M1 Apple Silicon Mac Mini, what should I expect with loads more cores like this?

Re: Threadripper 3990X: The Quest To Compile 1B Lines Of C++ On 64 Cores

#106
post #82
post #48

Earlier quoted context omitted.

What can perform better?

Go, Jai, V8 (weirdly), some hobbyist C compilers.

V8 is a JIT compiler, which has a baseline interpreter and progressive optimization. It's not surprising that interpreters have fast startup time. (Hotspot is the primary exception in this case, but a big part of its slowdown comes from the fact that it verifies bytecode before loading it.)

Re: Threadripper 3990X: The Quest To Compile 1B Lines Of C++ On 64 Cores

#107
post #54

That article mentioned Delphi and Object Pascal, and it brought back many fond memories. I absolutely LOVED Delphi and Object Pascal back in the day. So clean and so fun to program in. If Borland hadn't f-ed it up and had stayed around until now, I'd be the biggest Delphi fanboy. Alas, that was not to be. Modern languages are fun and all, but not Delphi-back-in-the-day level fun :-).

2 actively maintained version of Delphi still exist, the original one maintained by Embarcadero, and an open-source one available at https://www.lazarus-ide.org/ .

Re: Threadripper 3990X: The Quest To Compile 1B Lines Of C++ On 64 Cores

#108
post #61

Earlier quoted context omitted.

SSD have hard time sustaining 200-400Mb/s write where is 4 HDD do is easily. Our case isn't that much about IOPS. Anyway, reasonably available SSDs have up to [1000 x SSD size] total write limit, so doing couple of 400G builds/day would use up the 1TB drive in 3 years. At worst times we had to develop&maintain 5 releases in parallel instead of regular 2-3.

4 HDDs can do 200-400MB/s _sequential_ IO, 1 modern SSD can do 150-200MB/s _random_ IO and 400MB/s sequential IO while 4 HDDs would have a hard time doing IIRC more than 8MB/s random IO

i don't argue that. It is just random IO isn't that important for our use case, especially compare to capacity and sequential IO which are important for us and which HDD is ok for.

Re: Threadripper 3990X: The Quest To Compile 1B Lines Of C++ On 64 Cores

#109

Earlier quoted context omitted.

SLC seems to be going away pretty quickly, if it hasn't already been phased out. It just can't produce the price / GB of the better tech. Also, that article you linked is almost 10 years old. You're best bet for long-term reliability is to buy much more capacity than you need and try not to exceed >50% capacity for high write frequency situations. I keep an empty drive around to use as a temp directory for compiling,…

It's actually not better tech, instead it's more complicated, more error prone and less durable ways to use the same technology that produces more space for a lower price. MLC is pretty much okay but TLC is a little too fragile and low performance in my opinion. I prefer spinning HDD's over QLC since the spinning drives have predictable performance.

Better can mean a lot of different things. From context, I was using better to mean higher storage capacity for a given price.

Re: Threadripper 3990X: The Quest To Compile 1B Lines Of C++ On 64 Cores

#110
post #82

Earlier quoted context omitted.

Go, Jai, V8 (weirdly), some hobbyist C compilers.

V8 is a JIT compiler, which has a baseline interpreter and progressive optimization. It's not surprising that interpreters have fast startup time. (Hotspot is the primary exception in this case, but a big part of its slowdown comes from the fact that it verifies bytecode before loading it.)

I wonder if it’d be possible / useful to implement a rust or C compiler that worked that way. Basically instant startup time after a code change is a delightful feature.
Post reply on HN