Todd McCollough

Todd McCollough's Official Website

  • Home
  • About
  • Contact
  • Resume

Intel Hurts Customers by Differentiating Desktop and Server Processors

By Todd McCollough on February 3, 2011

As of the writing of this, there are two main processors offered by Intel which are still considered to be top of the line. What I will be basing my discussion on is the  differences in two made up market segments by Intel: the desktop processor and the server processor.

For purposes of this discussion I will look at the Intel i7 980X and the Intel Xeon X5680. Both of these processors were launched in Quarter 1 of 2010. Of course other high end Intel processors exists such as the Xeon 7500 series but for the purpose of this discussion the Intel i7 980X and Intel Xeon X5680 will be explored as they are very comparable processors and still very good processors at the time of this writing.

Looking at the specifications of these processors they are very similar. Both use a LGA 1366 socket, have 6 cores, 12 threads, a clock speed of 3.33 GHz, a max turbo frequency of 3.6 Ghz , 12 MB of cache, a bus/core ratio of 25, 32 nm, a bus/core ratio of 25, and a QPI speed of 6.4 GT/s. The first noticeable difference is the # of QPI links which for the i7 980x is 1 and the Xeon X5680 is 2.

One of the differences between these two processors is the QPI bus. The i7 980X has 1 QPI bus between the CPU and Input/Output Hub (IOH) and hence can only be installed as a single processor on a motherboard. The Xeon X5680 on the other hand has 2 QPI buses which allow one for data between the CPU and the IOH and the other for data between 2 different CPUS. This means the Xeon X56680 can be used with another in a dual processor motherboard.

Another difference between these two processors is the memory. The Intel i7 980X has a maximum memory supported of 24 GB where as the Intel Xeon X5680 has a maximum memory supported of 288 GB. Both have three memory channels. The i7 980X has an official memory support of DDR3-1066 where as the Xeon X5680 has official memory support of DDR3-800/1066/1333.  The other memory differences are the i7 980X has a maximum memory bandwidth of 25.6 GB/s with 36-bit physical address extension and no EEC memory support where as the Intel Xeon X5680 has a maximum memory bandwidth of 32 GB/s with 40-bit physical address extension and supports EEC memory. The i7 980X has a suggested retail price of $999 while the Xeon X5680 has a suggested retail price of $1663 (in quantities of 1,000). This price difference is quite large.

So there are three differentiators between the i7 980X and Xeon X5680: 1) the ability to run dual processors or not, 2) maximum memory size supported, and 3) ECC memory. Hence Intel charges a premium of over $600 for the ability to have dual processors, much more memory, and ECC memory.

However, a question needs to be asked, is the i7 980X or the Xeon X5680 faster? It turns out that the i7 980X is actually marginally faster than a Xeon X5680. According to a Performance Test benchmark which is generated from  thousands of high end CPU’s (updated on February 3, 2011) the i7 980X has a score of 10,469 and the Xeon X5680 has a score of 9,668. Hence a single i7 980X tends to be a few percentage points faster than a single Xeon X5680.

Another issue needs to be looked at, and that is the issue of ECC vs. non ECC memory. ECC stands for “Error Correction Codes” and is memory primarily intended for servers that are running 24/7 or for mission critical applications. ECC memory helps prevent errors from occurring in the memory chips. For office or home use ECC memory is not generally needed or used. Because of this, ECC memory is actually slower in peformance than non ECC memory.

The i7 980X only supports non ECC memory. However, does that mean that the Xeon X5680 will work for large amounts of memory with non ECC memory?  The answer to that is no. The Intel S5520HC server motherboard has 12 DIMM slots and six memory channels (three channels per processor)  but it only supports ECC Registered or ECC Unbuffered DDR3 memory. The manual for the board says “Non-ECC memory is not supported and has not been validated in a server environment.” So let’s look at another motherboard,  the supermicro X8DAH+-F.  While this motherboard supports up to 288 GB of ECC Registered DDR3 memory it only supports up to 48 GB of non ECC memory. So it would seem you would have a tough time if even possible to use a Xeon X5680 with large amounts of memory without using ECC memory.

So why does this make a difference? Well ECC memory is awfully more expensive than non-ECC memory. For example currently on Newegg, Patriot Memory has a 12 GB (3 x 4 GB) DDR3 1333 ECC Registered triple channel kit for $359.99. Also on Newegg, Patriot Memory has a  12 GB (3 x 4 GB) DDR3 1333 non ECC memory for $134.99. The difference in price here between non ECC and ECC memory, for the same amount of memory and same speed (voltage slightly different) is over $200.

Another issue with these two processors is overclocking. I run faster memory than the specification for the i7 980X as I run DDR3 1600 MHz at work. Motherboards for the i7 980X tend to be much more overclocking friendly than for the Xeon X5680.

I personally, along with other potential customers, require large amounts of memory which exceed 24 GB for intensive engineering calculations. I would much rather be able to have access to a faster processor (intel i7 980X) which is also cheaper and also be able to use cheaper memory (non ECC) as I don’t require ECC memory for my use.

However, there is a problem, Intel has decided to force a market segmentation and in doing so is hurting customers like myself. Since I am upset about this I called Intel customer service to voice my concerns and hear what they had to say.

Intel has their so called ‘desktop’ market and their so called ‘server’ market. Someone or some group of people at Intel have decided to impose a maximum memory limitation of 24 GB on the first generation i core series chips such as the i7 980X. The second generation i7 series chips has a 32 GB maximum memory limitation. This memory limitation is actually artificial and is deliberately hard factory sealed onto each chip so that the ‘desktop’ market and the ‘server’ market have some differences which allows Intel to charge a premium. According to Intel technical/customer support there is no way to unlock the imposed memory limitation of the i core series processors.

I disagree with Intel in their decision to enforce two separate markets and feel it hinders people like myself by forcing us to spend more money and get less performance in the process. I feel Intel needs to increase the maximum memory limitation on their processors substantially. I understand the need to want to differentiate between being able to use dual processors or just one processor at a time and the ability to use ECC memory. However, customers like myself really just want everything that is in the ‘desktop’ market but just with the ability to support more memory. Perhaps this is a third separate market that Intel could potentially differentiate. Or perhaps they will see the need and rationale to substantially increase the amount of maximum memory supported in their ‘desktop’ processor market. Of course motherboard manufactures will also need to incorporate these changes.

Sources (all accessed February 3, 2011):

http://www.cpubenchmark.net/high_end_cpus.html

http://www.pcguide.com/vb/showthread.php?t=74132

http://www.tomshardware.com/forum/295955-28-xeon-verses-980x

http://www.tech-faq.com/ecc-memory.html

http://www.intel.com/Products/Server/Motherboards/S5520HC/S5520HC-overview.htm

http://www.supermicro.com/products/motherboard/QPI/5500/X8DAH_-F.cfm

http://www.xtremesystems.org/forums/showthread.php?t=256167

http://www.newegg.com/Product/Product.aspx?Item=N82E16820220516&cm_re=patriot_DDR3_1333-_-20-220-516-_-Product

http://www.newegg.com/Product/Product.aspx?Item=N82E16820220423&cm_re=patriot_DDR3_1333-_-20-220-423-_-Product

Posted in Life | Tagged i7, i7 980x, i7 990, i7 995, intel, processor, xeon, xeon w5680 | Leave a response

O.A.R. Charity Concert in Maryland

By Todd McCollough on December 18, 2010

I was able to attend an O.A.R. (Of a Revolution) hometown A Heard Around the World Charity Concert in Bethesda, Maryland, on Saturday, December 18, 2010.  The concert was held at Strathmore which is located in North Bethesda, Maryland, which is right next to Rockville, Maryland, where the band is originally from. The concert lasted over two hours and O.A.R. played for the first time a song called “Fire” which will appear on their new album coming out likely sometime in 2011. This was my first time seeing O.A.R. live and I was very impressed, they sounded great, and it was very enjoyable. Below are some pictures I took while at the O.A.R. show.

Posted in Life | Tagged bethesda, charity concert, hometown show, maryland, o.a.r., of a revolution, rockville, strathmore | Leave a response

Northwestern vs. Wisconsin at Camp Randall 2010

By Todd McCollough on November 27, 2010

I was able to attend a college football game at Camp Randall in Madison, Wisconsin, on Saturday, November 27, 2010. Northwestern played Wisconsin with Wisconsin trying to win to secure a share of the Big Ten Title.

As expected Wisconsin ran up the score in an attempt to further prove it is worthy of a Rose Bowl trip. The Badgers beat the Wildcats by a score of 70 to 23. Fortunately for Northwestern, the Wisconsin starting quarterback Scott Tolzien was taken out early in the 4th quarter and no further points were scored by the Badgers. Here are some pictures I took of the game.

northwestern_wildcats_coach_fitzgerald_pre-game_warmups

wisconsin_pre_game_circle

bucky_the_badger_doing_pushups

northwestern_wildcats_wisconsin_badgers_camp_randall_2010

wisconsin_marching_band_halftime_show

northwestern_university_wisconsin_college_football

wisconsin_big_ten_victory_celebration

Posted in Life | Tagged big ten championship, camp randall, college football, madison, northwestern university, rose bowl, university of wisconsin | Leave a response

Illinois vs. Northwestern at Wrigley Field 2010

By Todd McCollough on November 23, 2010

I had the opportunity to attend a college football game at Wrigley Field on Saturday, November 20,  2010. Northwestern played Illinois in the Allstate Wrigleyville Classic.

The fighting Illini beat the Wildcats by a score of 48 to 27.  Here are some pictures I took while I was at the game.

northwestern_wrigley_chicago

allstate_wrigleyville_classic_chicago_illinois_northwestern

northwestern_wildcat_huddle_wrigley_field

watkins_trumpy_northwestern_wildcats

wrigley_field_illinois_northwestern

Posted in Life | Tagged chicago cubs, fighting illini, illinois, northwestern, wildcats, wrigely field | Leave a response

How I Setup My Office Desk To Be Ergonomically Correct

By Todd McCollough on October 15, 2010

I wanted to discuss how I have recently setup my desk at my office in an attempt to be ergonomically correct. I hope that this may help you set up your own office/home desk to allow for ergonomically correct computer use.

To build the monitor stand, I bought a wall shelve from IKEA, specifically the EBKAY JARPEN in size 46 7/8X11″. I then also bought two 4 packs of Capita legs from IKEA. These 4 packs of Capita legs come in different sizes 4″, 6″, 8″. I bought the 6″ version for this setup but since I am 6’4″ I liked the few extra inches. Most people probably just want the 4″ legs.

Once I bought the wall shelve and the legs from IKEA I had to install all of the 8 legs. This required me to measure out with a tape measure equal spacings between the legs and I marked the locations with a pencil. I then took a drill and drilled each of the holes in a bit. This made it easier for me to then take a screwdriver and screw in all 8 legs with screws.

The desk was supplied by my employer Ellumen so I am not entirely sure where it came from.

For the keyboard tray I bought a Humanscale 6G keyboard system.  This was ordered online from Ergodirect and I had it come with a 12R swivel 10″ right mouse platform as well. Ergodirect allows you to customize the track length and track and this will depend on your desk.  My desk is very deep so I selected the 27″ track and the more than 22″ clear space under the track length option. You should measure your own desk to see which length is right for you.

Once the Humanscale 6G keyboard system arrived I had to install it. The first step was to install the track underneath the desk. What is nice about the Humanscale keyboard system is that you can peel off a sticker on the track and mount it to the underside of the desk.  Then I had to lie on my back underneath the desk and screw in 10 screws directly into the bottom of the desk. This was a bit difficult and required a lot of strength and use of several screw drivers. Now my desk is thick so none of these screws popped up through the top but this is something to be careful of. You will want to install the track about 1/2″ back from the front of your desk. Humanscale provides clear instructions on all the installation steps. I also had to put in 2 rubber stoppers in the screws at the back of the track. This is to prevent the arms from going too far back.

Once the track was installed I simply had to insert the 6G arms into the track. Once the arms were in place, I put the keyboard tray on the arms and used 4 screws to screw it into place. There is also a front locking mechanism to prevent the arms from coming out that can be installed as the last step which requires 2 addition screws into the bottom of the desk.

The Humanscale 6G keyboard system allows for the keyboard to be adjusted up and down so that you can get the proper height you want. It also allows for a negative tilt up to 15 degrees.  I currently have the negative tilt set at 10 degrees. A negative tilt has been recommended to help maximize neutral hand, wrist, and upper body postures. However, it is important to note that the negative tilt on the keyboard tray also causes a negative tilt on the mouse tray. This will cause the mouse to roll down where as the keyboard tray has some rubber to prevent this. To counter this mouse rolling motion due to gravity, I used the Allsop Wrist Aid which has a 7 degree positive tilt.

The mouse I am using is a Smartfish Ergomotion Laser Mouse. The mouse takes a small amount of time to get used to but the design of the mouse allows it to rock, swivel, and pivot and may help with repetitive stress injury and wrist pain.

Regarding the keyboard, I am currently just using a standard Dell keyboard although I prefer using Microsoft Natural Keyboards and use one at home.  I recently purchased the Microsoft Natural Keyboard 4000 but ended up returning it. I have been using a Microsoft Natural Multimedia Keyboard for many years at home but it has been discontinued by Microsoft. The Microsoft Natural Keyboard 4000 is supposed to be a follow up to the Microsoft Natural Multimedia Keyboard; however, I was disappointed because the Microsoft Natural Keyboard 4000 has keys that feel too squishy and spongy for my liking where as the Microsoft Natural Multimedia Keyboard has tactile keys which do not have this feeling. I do hope Microsoft can release a version to my liking of their Natural Keyboard series line soon.

The chair I am using is a Gelvas High-Black Vinyl Chair from Office Depot, although I am sure there are better chairs available.

If you have any thoughts or suggestions let me know in the comments.

todd_office_desk_setup

Posted in Life | Tagged ergonomics, keyboard tray, monitor stand, office desk, setup, smartfish | Leave a response

Now living near Washington D.C. in Arlington, Virginia

By Todd McCollough on May 5, 2010

So in case you were not yet aware, I have recently moved out to the Washington D.C. area upon completing my masters degree in Biomedical Engineering at Northwestern University in Evanston, Illinois. I am now living in Northern Virginia (specifically Rosslyn, Virginia, which is in Arlington County). I am now working for a company called Ellumen, Inc. in the Rosslyn area. Here are some recent pictures I took while walking around the area after work.

Posted in Life | Tagged arlington virginia, capitol, national cemetery, national mall, washington d.c. | Leave a response

How to write a .dll file in Windows 32 bit and 64 bit and Compile in Matlab 32 bit and 64 bit and how to write a .so file in Ubuntu (Linux) and Compile in 64 bit Matlab

By Todd McCollough on December 24, 2009

I have spent a significant amount of time attempting to write a dll in C/C++ and call it in Matlab. An article has already been written on this topic at http://guoliangye.com/2009/01/21/how-to-write-a-dll-in-cc-and-call-it-in-matlab/ but I feel the need to discuss it further in both the Windows and Matlab environments.

In Windows 32 bit with 32 bit MATLAB.

1) Create two files named Test.h and Test.cpp

Test.h

#ifndef MY_API
#define MY_API extern “C” __declspec(dllexport)
#endif
MY_API int add(int a, int b);
MY_API int sub(int a, int b);

Test.cpp

#ifndef MY_API
#define MY_API extern “C” __declspec(dllexport)
#endif
#include “Test.h”
int add(int a,int b)
{
return a + b;
}
int sub(int a,int b)
{
return a – b;
}

2) Compile into a DLL (.dll) file using Visual Studio 2008 Professional or Express Edition. If neither is installed, you will need to download and install. Check the MATLAB documentation to see the list of all of the supported compilers for your version of MATLAB .

Step by step instructions for creating a .dll using Visual Studio can be found at http://msdn.microsoft.com/en-us/library/ms235636(VS.80).aspx

3) You then need to copy the newly created .dll file along with the original .h file to a MATLAB directory search path or you can just include the call to the directory.

Now open MATLAB and type

loadlibrary(‘Test.dll’, ‘Test.h’);

4) You can view the newly loaded function using

libfunctionsview Test;

5) You can also call the functions such as

A = calllib(‘Test’,'add’,5,4);
B = calllib(‘Test’,'sub’,5,4);

6) You can also unload the library using

unloadlibrary Test

In Windows 64 bit with 64 bit MATLAB.

Getting the dll file to compile in the 64 bit Windows version is a bit more tricky. MATLAB wants a C file not a C++ file. So one needs to be careful.

1) Create two files named Test.h and Test.c

Test.h

int sum(int, int);

Test.c

__declspec(dllexport) int sum(int a, int b)
{
return a + b;
}

NOTE: A “.c” file is not a selectable file type in Visual Studio 2008 so you may have to manually enter the file extension. You can select a .cpp file when adding to your project, but make sure to call it ‘Test.c’ so that .cpp is not the extension.

2) Compile into a DLL (.dll) file using Visual Studio 2008 Professional SP1.  Check the MATLAB documentation to see the list of all of the supported compilers for your version of MATLAB .

Step by step instructions for creating a .dll using Visual Studio can be found at http://msdn.microsoft.com/en-us/library/ms235636(VS.80).aspx

However, you need to be careful here. Before building the dll you need to go into properities and then the configuration manager and then choose a new active solution platform. Then you need to select ‘x64′ copy the settings for win32 and click OK.

Now you may or may not see x64. By default the x64 compiler is not installed during the install of Microsoft Visual Studio 2008 Pro. You will need to select it or just choose the full install. Even doing this I had an issue where it would not show up unless I also installed SP1. So make sure you install SP1 and select the x64 compilers if you do not do a full install, they are not default.

3) You then need to copy the newly created .dll file along with the original .h file to a MATLAB directory search path or you can just include the call to the directory.

Now open MATLAB and type

loadlibrary(‘Test.dll’, ‘Test.h’);

4) You can view the newly loaded function using

libfunctionsview Test;

5) You can also call the functions such as

C = calllib(‘Test’,'sum’,5,4);

6) You can also unload the library using

unloadlibrary Test

In Linux 64 bit with 64 bit MATLAB.

1) Create two files named Test.h and Test.c

Test.h

int add(int a, int b);
int sub(int a, int b);

Test.c

#include “Test.h”
int add(int a,int b)
{
return a + b;
}
int sub(int a,int b)
{
return a – b;
}

NOTE: An extra return should be added to the end of both of these files.

2) You will want to open up the Terminal. Then you will want to enter

sudo apt-get install build-essential

This will install gcc/gcc++ which will be needed to compile.

You will be compiling into a .so file. To do this make sure the two files you created in (1) are located in your username directory, if not copy them there. Then in the terminal type the following

gcc -c -fPIC Test.c -o Test.o
gcc -shared -Wl,-soname,Test.so.1 -o Test.so Test.o

3) You then need to copy the newly created .so file along with the original .h file to a MATLAB directory search path or you can just include the call to the directory.

Now open MATLAB and type

loadlibrary(‘/home/username/Test’,'/home/username/Test.h’)

Where username is the username you are on your Linux Install.

4) You can view the newly loaded function using

libfunctionsview Test;

5) You can also call the functions such as

A = calllib(‘Test’,'add’,5,4);
B = calllib(‘Test’,'sub’,5,4);

6) You can also unload the library using

unloadlibrary Test

NOTE:

The above was originally run and tested in December 2009 on a computer running Windows XP 32 bit and  MATLAB 2009 B 32 bit version,  on a computer running Windows 7 64 bit and MATLAB 2009 B 64 bit, and on a computer running Ubuntu 9.04 64 bit computer running MATLAB 2009 A 64 bit version.

This was also tested in November 2010 as an update on a computer running Ubuntu 10.10 64 bit with MATLAB 2010 B 64 bit version.

Refer to the latest MATLAB documentation for updates and what compiler you will need.

MATLAB documentation provides further information of using C shared libraries in MATLAB.

Further you may encounter errors relating to copying and pasting the above directly into files. Therefore I encourage you to directly type out all the files and commands.

Posted in matlab | Tagged .dll, .so, c, matlab, shared library | 10 Responses

Northwestern Athletics: Men’s Basketball and Football

By Todd McCollough on December 24, 2009

I wanted to update everyone on the Northwestern University Men’s Basketball and Football teams and their progress so far as of Christmas 2009. Happy Holidays to all!

Thus far I have been very impressed with both team’s play.

The Northwestern Men’s Basketball team is 10-1. The only loss is a home loss to a ranked Butler team. Big Ten play starts against Illinois on December 30th, 2009.

Two good articles to read on the Basketball team are at http://sports.espn.go.com/chicago/columns/story?columnist=powers_scott&id=4766881 and http://sports.espn.go.com/ncb/columns/story?columnist=katz_andy&id=4766773.

Hopefully this will be the first time the basketball team makes the NCAA march madness tournament as many are predicting at this point.

Andy Katz at ESPN.com writes.

…Northwestern, for the first time ever, will be in the Dance. The Wildcats won’t be on the bubble, either. I predict NU will be in the field by the last week of the regular season.

Moving on to the Northwestern University 2009 Football Team. The Wildcats finished the regular season at 8-4.

The Wildcats will be playing the Auburn University Tigers at the Outback Bowl in Tampa, Florida, on January 1, 2010 at 10 AM CST and shown nationally on ESPN. I plan to be in attendance at the game and cheering on the wildcats for hopefully their first bowl win.

Northwestern is looking for it’s first bowl win since 1949. Here is a picture of the team celebrating a win at Purdue earlier this season.

Posted in Life | Tagged basketball, football, northwestern university, outback bowl | Leave a response

Chicago Bulls Game at The United Center

By Todd McCollough on December 24, 2009

Recently, I had the privilege of attending a Chicago Bulls basketball game at the United Center on December 17, 2009. The Bulls won 98 to 89 versus the New York Knicks. Here are some pictures from the basketball game. The pictures are mostly of pre-game and half-time warmups. One picture gives respect to Michael Jordan and Scottie Pippin.

Posted in Life | Tagged chicago bulls | Leave a response

New Computer with AMD Phenom and DDR3

By Todd McCollough on July 28, 2009

I recently purchased several parts on Newegg.com so that I could build my own computer. It is quite a substantial upgrade compared to what I once used as my main desktop. The setup consists of an Asus M4A78T-E motherboard, an AMD Phenom II X4 945 Deneb 3.0GHz processor, 4 GB of DDR3 1600 memory from Corsair, a Samsung 1 TB harddrive, an Antec Three Hundred case, 5 case fans (3 of which have Blue LED lights),a 700 Watt Power Supply, and an Asus Radeon Video card.  I am running Windows Vita 64 bit and plan to upgrade to Windows 7 shortly once it comes out.

However, I did run into a problem with Windows Vista recognizing an old DVD drive I placed in the case.  When trying to install Windows Vista I receieved an error message early on saying a “required cd/dvd drive device driver is missing.” In order to work around the problem, I had to first install Windows XP 64 bit and then install Windows Vista 64 bit on top of the previous Windows XP install. Once Windows Vista was installed the DVD drive was still having problems. Whenever I try to use it by inserting a DVD or CD, it causes the operating system to freeze. Microsoft really needs to sort this problem out since it seems as if many others have similar problems.

All in all I am pleased with the setup and have noticed a large performance increase. I am also using 3 monitors to help increase my productivity.

Posted in Life | Tagged amd processor, asus motherboard, build a computer, cd drive missing, computer upgrade, dvd drive missing, new computer, windows vista | Leave a response

Next »