Dualcore vs Quadcore for Development [closed] - development-environment

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
Recently I am thinking to upgrade my current development laptop in newer machine. I'm all the while working under Linux/Windows dual boot and doing development work on both.
My current development platform including Java (Eclipse), Ruby/RoR (Gvim/Atom), Blender (learning), Erlang, ANSI C (VS/gcc), Android Studio for Android development, VirtualBox running Windows for Microsoft Office suite, C# development and MSSQL development. Sometimes need to debug as well under Virtualbox Windows by running Eclipse. Natively on Linux using MySQL/Postgresql for development and testing. I'm interested in exploring 3D and game programming as well.
Occasionally I do play some 3D games on Windows such as Modern Warfare 4, BF4 etc.
Now for the new year, thinking to upgrade to Macbook Pro but I'm undecided on to look at dualcore or should I stick to quadcore? Is there any benefit if I'm using quadcore for development purposes?
Googled and found the link below but it is done in year 2007.
http://blog.codinghorror.com/choosing-dual-or-quad-core/
http://blog.codinghorror.com/quad-core-desktops-and-diminishing-returns/
Understanding that utilizing multiple cores is mostly software or OS responsibility and this is easier to update to utilize those extra fire power.
So is it still trivial for development machine to have quadcore CPU as of 2015/2016? I've already targeted I'd take 16GB of RAM but not on CPU choice.

If you are looking for an upgrade I would recommend you to first look for a laptop that comes with a SSD harddisk because disk I/O is the typical performance bottleneck.
As for whether you should go for dual or quad cores... I personally think it doesn't really matter because not every piece of software is written to fully utilizes all CPU cores. It really depends on how the software is implemented. For instance if it is a multi-threaded or multi-process program then you will benefit heavily otherwise you probably won't see much of a difference. But the speed of your CPU core will definitely make a difference thou.
I see so you are also into games programming and some serious FPS gaming like BF4, then you will definitely need a powerful quad chipset and also an excellence graphics card. Otherwise if it is just for pure web/server development (not games), a good dual core should do it.

Related

1.90 GHz with Turbo Boost up to 3 GHz - good enough to run VM's [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
http://www.sony.co.uk/product/vn-duo/svd1121z9e
I'm about to but the above laptop as a desktop replacement, but I want to know if it's a good enough processor to run VM's via hyper-v using windwos8.
not sure what Turbo Boost up to 3 GHz means,
Any input greatly received
It's a weird choice for desktop replacement, since it's not designed to be.
The first thing you want to know here, it's a U-series CPU, which means it uses considerably lower power. And that comes at a cost, the lower base CPU frequency. Yes, it can run up to 3.0 GHz, but again, better performance costs energy.
As it gives you a 6.5 hours battery life, the actual battery life when you Turbo Boost to 3.0 GHz will be considerably lower.
And for your another question, what is Turbo Boost? Turbo Boost is a technology to boost your CPU's performance when it's needed. Much like a smart power control that gives your CPU a push when it's needed.
Back to virtualization. It have two core, and I recommend using at least two cores for a virtual machine, so that leaves no spare core for your system, and that's a pretty bad idea. Also, 8 GB of memory may not be enough for a more memory-demand virtual machine.
For a desktop replacement, I will recommend a quad-core laptop, especially if you need to run a more performance-demand virtual machine.
Almost forgot one big thing, the screen size, 11" is really small, despite the high-resolution, your eyes might sour over time. I enjoyed programming on my much less powerful 21" desktop than my 15" laptop for the bigger screen. Unless you're going to pair it with an external display, I will suggest you consider AT LEAST a 13" model.

Which version of OpenGL/Direct3D should I target for optimum compatibility? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
When we develop web pages we can broadly work out which browsers to support based on market share.
When we develop in .NET we can broadly work out which .NET version to develop for based on which Windows versions have it installed.
But when developing OpenGL or Direct3D applications, how do we know which video cards people (I mean "people" as opposed to "hard core gamers" or "companies using CAD" :P) are using? Are there statistics on such things? Is there some common logic that people use to work out what version to support? Just as most companies have supported (perhaps until just recently) a minimum of IE6 in web pages, is there a general consensus to support a minimum of, say, OpenGL 1.5, or DirectX 8 or something?
I note that we can find out which specific video cards support which versions of these APIs, but how do we know which video cards people are actually using, is there any kind of research on this?
N.B. I'm more interested in OpenGL because that's what I'm using, but I mention Direct3D because I assume the same problem applies.
Market fragmentation for 3d hardware has always been a huge problem. There is no simple answer.
You need to define who your uses are. Is this a casual-oriented game that you intend to sell to people who haven't updated their computer in years? Is this a business application that is aimed at workstation-grade hardware? Are you just looking for an average middle-of-the-road game-buyer? Is this something simpler than a game like a screensaver that you plan to sell to people who don't buy games at all? Do you need to support laptops? Netbooks?
The market fragmentation is considerably worse with OpenGL than it is with DirectX. The official standard requirements from the Khronos Group are all well and good. But the hardware vendors tend to be very slow to update their drivers to match the standard. Many features are required by the GL spec, but are only implemented in a fallback software path that is absolutely unusable in commercial software. The new OpenGL 3.1 spec tries to improve this situation by removing support for most older, poorly supported features. But if you need to support hardware more than a couple years old (or most modern Intel integrated GPUs) then GL 3.1 would be aiming too high.
A good place to start for general hardware usage stas among game purchasers is the Steam Hardware Survey ( http://store.steampowered.com/hwsurvey ). Steam is the most popular digital game distribution service that covers a variety of games from casual to core. They reset the numbers periodically to keep it current. Last year they reported that they had 25 million active users, so the sample population is pretty good.
So you probably need to narrow your target customer group down more. I would recommend picking some recent competing applications that you consider to have a similar customer base to yours and basing your target hardware around what they require.
OpenGL 2.1 is a good bet. The newer OpenGL 3 doesn't offer that much more functionality. You have to check for the availability of all of the OpenGL extension anyway,so you don't loose much by sticking with 2.1.
For DirectX: Use DirectX 9c. That is the latest version that still runs on WindowsXP. Drivers are stable and very mature. DirectX 10 offers more functionality but you will lock out the user-base that still runs WindowsXP.
About compatibility for non-gamers: Graphic cards that don't support these APIs (at least to a usable degree) have died out more than five years ago. Given the typical life-cycle of a PC you can be almost sure noone will have problems.
If any user complains that the software doesn't run on his 10 year old matrox-parhelia card he should just buy the cheapest graphic card he can get. It will run much faster and will cost a fraction of the software.
It depends on the timeframe of the project on the DirectX side.
If the project is to be ready in months, then follow the advice from Nils.
IF the time is over a year, I would reconsider limiting to DirectX9 as the XP machines are getting lesser and lesser with the time. DirectX11 would be a good idea, especially with retrocompatibility till feature level 9.0.

Microsoft Robotics: cheap but very extensible robot? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
Is there any cheap and very extensible robot kit, which can work with Microsoft Robotics?
I want to have a great choice of cool parts for a robot to buy. :)
If where is no such robot kit which can work with MS Robotics, is there any chance to buy a very extensible robot which just can be programmed, maybe even in assembler?
Microsoft Robotics Studio is a PC robotics platform. So if you want to use that, you need a robot with a PC on board. Unfortunately, this type of robot is more expensive and there are far fewer of them on the market. A select few that I know of that work with RDS:
Robotics Connection Stinger robot with an ICOP eBox Windows CE PC
IRobot Roomba with an ICOP eBox Windows CE PC
CoroWare CoroBot (Full disclosure: I work for CoroWare.)
As Paul said, the Arduino is a popular microcontroller for robotics. Microcontroller robots can be used with RDS, but they operate in a "tethered" fashion, always connected to a PC either with a physical cable or wireless. Some popular robots like this that work with RDS:
Lego NXT
Parallax BOE Bot
Of course a custom made microcontroller robot can work with RDS, however, you will have to architect the microcontroller-to-PC interface specifically for your robot and communication medium. This is typically not a task for novices.
Any good robot kit is, by definition, going to require you to be fairly handy with ALL the aspects related to robotics. That is, you're going to have to learn a bit of mechanical engineering to make sure your locomotion device works properly, a bit of electronics to attach sensors, and so on. If you're looking for a snap together pre-built kit where all the accessories fit into proprietary docking connectors, you're not looking for robotics.
If you're feeling gung-ho about learning to program ICs, you could do worse than the Arduino system. With that in tow, you could look here for more inspiration as far as parts go:
http://www.sparkfun.com/commerce/categories.php?c=31
The Arduino is one of the more popular open-source robotics base boards, and it's easy to program and get started with. You can do a lot before you run into the hardware limits on that, but you will have to build your robot from bits and pieces, rather than a nicely packaged kit with printed instructions. That's half the fun though.
I personally would recommend the roomba. It is supported by iRobot, which is a major manufacturer of robotic devices (military and civilian). Additionally they have created a device called the roomba "create" that is a roomba, but without the vacuum cleaner. The control of the roomba can be taken over via a serial connection, and once you get the basics down (its easy), controlling the device is pretty simple!
Since its serial, you can control it with almost any device - be it a computer, micro-controller, or whatnot!
I've done a lot of work playing around with the device myself, so if you have any questions, feel free to post back!

Is a gaming machine better for software development? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
Is a gaming machine better for software development?
NO.
CPU
For software development, you need lots of cores. For gaming, you need fast but not necessarily many cores. This is slowly changing as newer games are being written to take advantage of multicore CPUs, but the general case is that most gaming machines focus on raw CPU power. For example, in my case, I'm an RoR developer, and during development I run: my editor, mongrel, solr, postgresql, and memcached. Most of the time I also have an open browser, a PDF editor, and iTunes.
RAM
Most games will be OK with 2-3GB of RAM.
For software development, especially web development - if you will be running multiple servers - you'll want at least 4GB, or even 8GB of RAM.
GPU
Top-of-the-line graphics cards for gaming can cost $500 or more. For software development, you can get away with the cheapest GPU you can get. The only aspect of the video card you'll want to concern yourself with is the capability to handle multiple large monitors.
It will actually be helpful if your development machine is so crippled (gaming-wise) that you can't play the games you like to play on that machine. No distractions! :)
I would say some aspects are the same between gaming machines and development machines, like large disks, a lot of memory, etc. So in that respect yes, a gaming machine would fit better than a low end desktop.
On the other hand, gaming machines tend to be tuned towards raw performance instead of robustness. A development machine often does not need a state of the art graphics card, nor does it want a RAID-0 to spead up the disk. If it crashes one disk you lose all your work, so RAID-1 would be much better. Same holds for memory, ECC (or what its called nowadays) is a bit slower but adds robustness.
One gotcha with powerful development machines is that they do not represent the non-functional requirements as to execution environment. If you are not aware of this enough your software will run slow on a "normal" machine because it ran great on your supercomputer :-) One take on this is that development machines should always be a tad slower than the target machines, but this cuts into your development time. A better solution is to have slower machines in the test environment and a few slower machines in the development lab.
Some attributes of gaming machines can help developers, like having a good deal of memory, or a quad core processor (so you can, respectively, run VMs without hassle, and compile faster).
But a fast GPU won't do you much good, so there's no point in spending much money on it. Unless you plan on developing or playing games, of course.
Summing up: if you plan on using the PC for fun, get a reasonable GPU. If you don't, skip it and keep the rest just like you would. You won't regret it.
If you want to develop games, sure. I should know, I have experience on both.
Unless you're programming something to do with graphics / game related, not necessarily. The video card is going to be underused otherwise. On the other hand gaming machines tend towards the high end making them ideal for many programming tasks.
I think so. I think the performance required for gaming will greatly help developers. Only overkill would be graphics, unless you use big rendering software, in which case RAM, graphics is a must.
Good CPU, Lots of fast RAM, and a fast HD will do you lots of good.
What you'll need for software development is usually a machine with ample RAM, ample HDD space (and a fast HDD or set of HDDs to boot), a fast multi-core processor (very important if you're working with compiled languages, especially the likes of C++ which take a long time to compile compared to Java or C#) and preferably the ability to drive multiple monitors. For the latter, it's a case of the more the merrier as screen real estate is one of those things that you can never have enough of.
While a lot of this does indeed sound like the spec for a gaming machine due to its raw number crunching ability, the main difference is likely to be the graphics hardware. You don't need something that can render x million polygons per second on a single monitor if you're trying to drive 3x 24" monitors as 2D displays. In fact you probably don't want a usually rather noisy gamer spec video card that only shines when rendering 3D; you're more likely to get more out of a "pro" graphics card that can drive 4 monitors instead.
So yes, I'd think the spec is quite similar and there is a lot of overlap between the two but in the end a developer spec machine is not the same as a gaming rig.
A gaming machine without the fancy video card, I think that's more suitable for a programmer. (you can use the video card money to add more RAM for example)
Gaming machines are great for everything except your wallet ;-)
Programming WPF Shader Effects is one of those particular tasks where a gaming machine can actually allow you to do more while not working in game-development. Also, GPGPU work may benefit from fast memory transfer and fast GPU.

Is it possible, by any stable method, to enable ReadyBoost on Windows Server 2008? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 4 years ago.
Improve this question
I know the standard answer is No. However hear out the reasons for wanting it, and then we'll go for whether it is possible to achieve the same effect as ReadyBoost via either enabling (and installing) ReadyBoost or using third party software.
Reasons for using Widows Server 2008 as a development environment on a laptop:
64-Bit, so you get the full use of 4GB RAM.
SharePoint developer, so you can run SharePoint locally and debug successfully.
Hyper-V, so you get hardware virtualisation of test environments and the ability to demo full solutions stored in Hyper-V on the road
So all of that equals: Windows Server 2008 (64) on a laptop.
Now because we are running Hyper-V, we require a large volume of disk space. This means we are using 5,000 rpm 250GB HDD.
So we are on a laptop, we are not able to use solid state HDD, and we only have 4GB of RAM and the throughput of a laptop motherboard rather than a server one... all of which means we are not flying... this thing isn't a sluggard but it's not zippy either.
Windows Server 2008 is based on the same code base as Vista. Vista features ReadyBoost, which enables USB 2 flash devices to be used as a weak cache for system files, which visibly increases the performance of Vista. As the codebases are similar, it should be possible for ReadyBoost to work on WS2008, however Microsoft have not shipped or enabled ReadyBoost in WS2008.
Given that we are running WS2008 on a laptop as a development environment, how can we achieve the performance gains of ReadyBoost through the use of flash devices in Windows Server 2008?
For the answer to be accepted it must outline an end to end process for achieving the performance gain.
Answers of 'No' will not be accepted as I understand some third party tools achieve some of the functionality, but I haven't seen a full end-to-end description of how to get going with them.
With Virtual machines, the answer to "do you really need so much memory" is a resounding YES. Trying to run 4-6 virtual machines eacch configured with 512MB or more really stresses out the system.
The ability to use ANYTHING as additonal virtual memory is key.
Is everything that's installed
64bit?
Do you have hardware virtualization
capabilities and is it turned on in
the bios?
Have you enabled superfetch?
Turn of desktop experience.
And last but not least, have a look
at this article and see if it
gives you any pointers.
Too add: It doesn't look like there is a reasonable way of using ReadyBoost on WS2008
OK, so this isn't quite ReadyBoost but the end result should be quite similar. Here is a video on youtube you can follow on how to do this on Vista - WS2008 should be no different.
http://www.youtube.com/watch?v=A0bNFvCgQ9w
Also, you may want to upgrade the hard drive on your laptop:
Recommend ST9500420ASG 500GB 7200RPM 16MB SATA w/ G-Shock Sensor