Multiprocessor builds

I'm looking into buying new machines for my developers and was looking at the new dual core processors from Intel as an option to get faster compiles as compared to a "normal" single core processor. So my question is, does the C# compiler in VisualStudio 2005 take advantage of the dual execution cores or would I just be better off with a faster clocked P4

Thanks in advance for any info.

Tom.



Answer this question

Multiprocessor builds

  • meeka29

    Hi!

    I have Intel 830 CPU and I can state that it's working good - my apps are less freezing right now. Also it's good for computational powers - two cores of 3.0 GHz with little overclocking to 3.9 gives me about 7.8GHz power. But again this is for science computations and 3D rendering.

    You have developer machines. If you can - buy them dual cores, good investment of money. They will spent less time waiting for frozen apps, they will feel you care about them (thats really cost effective) and they will be encouraged to use multithreading (which becomes more and more popular and required).

    For build process I heard that compiler can work on 2 CPU's. But the speed of build is more depend on hard drive speed and memory speed rather than on CPU.

    In short, try give the best equipment you can - dual core CPU, DDR2 RAM and SATA HDD.

    P.S. WARNING: one thing I was forced to do with dual core is to upgrade my cooling system. Default cooler screams at 4000-5000 RPM and it's not enough to cooldown fully loaded 2 cores. I had to buy new Zalman 9500 CNP cooler which performs great at low rates. If your cooling system will not be efficient - I think both cores and CPU will go down soon.



  • zcr

    There is nothing wrong with buying a 64-bit processor, such as the Athlon x64. They run 32-bit code as well as 64-bit. The output of a compiler is dependent on the compiler, not the processor it is run on. Cross-compilers have been available for years. Years ago, I worked on a project where I compiled MIPS code on a DEC Alpha. The Alpha couldn't run the MIPS code, but I was able to dump it into a MIPS virtual machine and execute it.
    I'm currently looking at building a development system with a dual-core Athlon x64 as it gives good future proofing. I can try out 64-bit computing, multi-core execution, and such, but still be able to run my 32-bit programs (which is the majority of them) as I always have.


  • igorss

    Matthew,

    Thanks for the pointer. The same option does exist in VS 2005 for C# as well. I ran a quick test on a dual processor box and it appeared to distribute the project builds across the two processors, though the CPU utilization was still under 50% on each on average. So there are definitely other factors in play, as Sergey mentioned in the first reply.

    Thanks to all who provided feedback.

    Tom.


  • MackJerry

    I don't really know the answer, but I will point out that there is an option under Options/Projects and Solutions/Build and Run called "maximum number of parallel project builds" which defaults to 2.

    On the face of it, that would seem to suggest that some form of parallel building can go on...

  • vipinmathews

    And check out this:

    http://msdn2.microsoft.com/en-us/library/9h3z1a69.aspx

    However, I *think* it's only for C++.

  • vtr_ajr

    64 bit CPU will run 32 bit Windows and development tools and so on. They compatible in that way.

    32 bit machine will not run 64 bit code - this is also traditional, older version can't run newer code.

    Native 64 bit are not needed for users or computations in most cases. It's good for large memory adressing only for server software (SQL in most cases).



  • Umesh Sinha

    And don't buy 64-bit processors.

    This below is a piece of text i found:

    Firstly, backward compatibility is not possible. This means that any 64-bit .NET implementations do not work on 32-bit machines. It also means that 64-bit operating systems do not work on 32-bit machines, and error messages can instantly appear if trying to do so. Hence, it is recommended for the programmers to develop their software on the 32-bit platforms and to develop software that can be converted into 64-bit applications. Currently there are approximately 90% - 95% of applications and machines built on 32-bit versions. Therefore it may not be a wise decision to move the entire hardware and software into 64-bit computing, but incremental upgrades should be more applicable.

    Secondly, 64-bit computing does not perform as well as what theories and manufacturers claim. The main reason is that presently applications are not built based on 64-bit computing but are “converted” into 64-bitcomputing, or relying on the 64-bit operating systems to run lower-end 32-bit applications.

    Link: http://eprints.ecs.soton.ac.uk/11127/01/iadat_victor_chang_64bit_computing_1_column_final.pdf



  • Multiprocessor builds