About hammer, compiling, and RAM.

Kube

Not the correct way to make lasagna
aa
Aug 31, 2014
1,342
1,849
I installed more RAM on my computer. (Before - 4gb, now - 12 gb), but hammer compiler (vvis vrad and vbsp all together) still using 4 gb of RAM. How do i let them use more of RAM? Is there any limits?

Unfortunately, 32-bit programs such as Hammer can't use more than 4GB of RAM (more specifically, 3-point-something GB).
 

Kube

Not the correct way to make lasagna
aa
Aug 31, 2014
1,342
1,849

Pocket

Half a Lambert is better than one.
aa
Nov 14, 2009
4,694
2,579
I doubt it. Everything funnels through VBSP, VVIS, and VRAD, and they're 32 bit. I'm not sure memory is really a bottleneck anyway compared to processing speed; VRAD definitely jumps up to 99% CPU usage whenever I run it.
 

henke37

aa
Sep 23, 2011
2,075
515
You could build your own 64 bit version of the tools. They did release the source code for them some ten years ago.
 

Crowbar

Spiritual preprocessor
aa
Dec 19, 2015
1,455
1,297
Well the RAM upgrade is a good thing too, though there are other things you could upgrade to make compiling faster.
 

Vel0city

func_fish
aa
Dec 6, 2014
1,947
1,589
That said, there's a finite amount of threads the compilers can use. It's 16, so an 8-core extreme edition i7-5960X (or the newer Broadwell-E 8-core CPU would do too) is the most extreme CPU you can use before you're starting to not use cores. You could use them for other things though.

I also remember someone wanting to build a GPU accelerated version of the compilers though which would speed up the compile process (especially VRAD) by a whackton, but that was years ago, and the project never even left the ground.
 

henke37

aa
Sep 23, 2011
2,075
515
The tools are supposed to support cross machine multithreading. Running the build on multiple machines and all that. You could probably dodge the core limit by running multiple instances of that on the same machine.
 

Pocket

Half a Lambert is better than one.
aa
Nov 14, 2009
4,694
2,579
The tools are supposed to support cross machine multithreading. Running the build on multiple machines and all that.
Just out of curiosity, how would one take advantage of that if one actually had multiple machines? Would we have to set up an actual cluster?
 

henke37

aa
Sep 23, 2011
2,075
515
The way it is supposed to work is that you run VVIS or VRAD with a special argument that makes them ready to accept work from the network. You also run the same program with a different argument to act as the manager, handing out tasks to each slave (and itself if it feels like it).
 
Last edited:

Pocket

Half a Lambert is better than one.
aa
Nov 14, 2009
4,694
2,579
That page says the Orange Box version is broken, which means it's useless for doing compiles with advanced lighting parameters... so, basically, the only compiles that might take long enough to justify distributed compiles in the first place. Good to know that I can forget about this and not bother learning how to use it.