ScorpioTek Solutions
07-filler-left Information about ScorpioTek Services Offered by ScorpioTek Training Courses Offered by ScorpioTek Technology Blog by ScorpioTek Contact us for more information on training/services 08-filler-right

Archive for August, 2007

Parallels vs. Fusion Benchmarks: Biased?

Wednesday, August 29th, 2007

Via VMBlog, I read about the reply that SWsoft when CNet released their benchmarks of Parallels vs. Fusion (I blogged about it not so long ago). It seems that, according to Baimetov, the tests were not very realistic in terms of the average usage of a virtual machine. He states that it is unrealistic that anyone would ever run Photoshop on a VM in Vista (which does makes sense).

It really is not that difficult to put these guys side by side in terms of real world scenarios, I can give you some right off the top of my head:

-Launch time Visual Studio 2005
-Compiling a big C++ and C# application
-Rendering a multi-nested table in Internet Explorer

Give us scenarios that resemble the day to day tasks that people would actually choose to run a VM (that is, things you cannot do in OS X).

Read rest of the story on at VMBlog.

Parallels vs. Fusion Benchmarked

Wednesday, August 22nd, 2007


I recently moved from Parallels to test drive Fusion. I had read somewhere that Fusion outperformed Parallels in many aspects, but I had lost the link that had this info. Basically, the story was that Fusion had better memory management than Parallels and this lead to a better performance for both the host and guest OS.

So far, I have been running Fusion for almost a week on daily basis and have found it robust, fast, and reliable. Thanks to an entry in Paul’s blog, I was guided towards a page in Cnet that benchmarks the 2 in various tasks such as media encoding and photoshop tests. In all the tests where VMWare is present, it does outperform Parallels.

What do you think? Is it worth it to move from Parallels towards a product from a company that has become synonymous with the term virtualization?

The Most Complete VHD Listing in the Universe

Wednesday, August 22nd, 2007


Recently I blogged about all the different VHDs that are available from the VHD test drive program. Well, if you want to have the most complete listing available, make sure you check Dugie’s blog, he is constantly updating them and it has all the VHDs from the test drive program.

x64 7zip Utility: 7zip

Wednesday, August 22nd, 2007

I blogged a while back about 7zip compression. I tried several clients and they all failed when installing on a 64-bit OS (errors about registry or data corruption). After searching a bit more, I found 7zip, which is an amazing compressor for x64.

What I really like is that, being a native 64 bit process, it integrates with the Windows shell pretty good:


7Zip is free and open source, you cannot beat that with any other compression utility that offers 7zip compression :)

Some Problems/ Solutions when working with the MPI Cluster Debugger

Saturday, August 18th, 2007

While writing a lab section on the MPI Cluster Debugger, I faced several errors, which were all due to misconfiguration from my part. Here are a few in case you face some of them in the future:

Error (2) The system cannot find the file specified.

launch failed: \\x64svr01\devshare\Administrator\bin>c:\debug\mpishim.TYPO c:\de

bug\mpishim.TYPO X64SVR01 \\x64svr01s\devshare\Administrator\bin\SimpleMPI.exe on ‘X64SVR01′ failed


Solution: I thought the error message had to do with the path of my executable. However, this error happens because the system cannot find mpishim.exe, so check to see if the path of mpishim.exe in your project properties corresponds to a file that truly exists.

Aborting: smpd running on X64SVR01 is unable to connect to msmpi service on c:\d


Other MPI error, error stack:

MPIDU_Sock_post_connect_filter(1258): unable to connect to c:\debug\mpishim.exe

on port 8677, no endpoints

MPIDU_Sock_post_connect_filter(1278): gethostbyname failed, The requested name i

s valid, but no data of the requested type was found. (errno 11004)


Solution: Tricky one! I found this one by specifying the -hosts argument with an argument of 2 and only giving out 1 host.

MPISHIM: Debugger was unable to launch requested process ‘\\x64svr01\devshare\Administrator\bin\SimpleMPI.exe’.

Press any key to continue . . .


Solution: One of your nodes is not running the remote debugger.

Microsoft’s VHD Test Drive: New Additions to the Family

Thursday, August 16th, 2007


When we started working with the virtualization labs, there were only 4 VHDs available. As of now, the list is growing and growing. I bet that there are still many people who are are not aware about this, which would definitely make their lives a lot easier. The following list summarizes some of the ones that I deem as most important:

These VHDs are a great way for testing out if a new technology will suit your needs without breaking your head on how to install and configure it. An expert has already done that work for you, so all that you need to do is set up your VM and fire away!

Update: I found a listing that has the most updated VHDs that are available for download, make sure to bookmark that link!

Moving to a New Home!

Thursday, August 16th, 2007


Due to the simplicity and flexibility of WordPress, I will now be blogging in this new space. I’ve found wordpress to be the most robust solution when it comes to blogging. Please update your RSS feeds / bookmarks.

How to Find Which Nodes are running your Tasks in the Compute Cluster Scheduler

Thursday, August 16th, 2007

When you submit a job to be run in a Compute Cluster Server, you will find some information about the running tasks at the bottom pane. Information such as error output, task name, and so on is shown, but there is one vital piece of information that should be shown (IMHO) by default and it is not: what nodes are running the current task?

Luckily, this can easily be solved by right clicking on the column headers, selecting Add/Remove Columns and adding the Allocated Nodes column.  This will make it easier to know where to look for output. The following clip shows how it is done (BTW, if you have not checked Jing, make sure you do, it’s amazing):

Finding Nodes of your Job

How to Specify Boot Order when Using Parallels

Thursday, August 16th, 2007

Today while tryng to do a V2V migration form Parallels to VMWare, I had the need to boot my current VM into BartPE so I could create an image with Tru Image.  When the VM started up, I tried to press al sorts of F key combos to get to the BIOS screen.  In Virtual Server/Virtual PC, pressing F2 does the trick; but in Parallels it was not working.

After taking a trip to the VM preferences, I found that this is set within the VM properties, and is actually quite simple:

How to Debug MPI Applications in Visual Studio 2005 (Part 2)

Thursday, August 16th, 2007

To recap, on my last post we went through some of the steps that need to be taken when debugging an MPI application, namely:

-Install the x64 remote debugger
-Copy mpishim to an accessible loction
-Modify the registry to avoid UNC path problems in the future

Let’s go ahead and finish the rest of the steps in order to debug an MPI application.

Step 4: Configure an Empty Job with the Job Scheduler

The job scheduler is a utility by which all jobs that are submitted to the cluster are managed.  If you want to have something done at the cluster for you, then you need to use the job scheduler.   Debugging is no exception, as you need to create an empty job that will host your debugging application.

To get started, open the job scheduler and from the File menu, select Submit Job:

Name your job “Debugging Job” and move over to the Processors tab.  Select the number of processors you would like to use for this job and then (this is actually quite important), check the box that says “Run Job until end of run time or until cancelled”.   Failure to check this box will cause the empty job to run and finish – which is not what we want.   We want the job to continually run, so that Visual Studio will then attach the running processes to this specific job.  Don’t forget to mark this!:

Next, you need to move to the Advanced tab and select which nodes will be part of your debugging scheme.  In this case, I will only use 2 nodes, namely Kim03a (the head node) and Kim02a:

Click on submit job, you should see your job running.  Make sure you write down the ID of the job (in this case, it is 3) as you will need this info later on!!

Step 5: Configure Visual Studio

Open Visual studio and the project you are working on.  Go to project properties and access the Debugging section.  From there, instead of the Local Debugger, select MPI Cluster Debugger:

The following screenshot shows my debugger properties window with all necessary values filled in:

Let’s go ahead and talk about each of these values:

MPI Run Command: This needs to be mpiexec for MPI applications

MPIRun Arguments:
  The first argument “-job 3.0″ is to specify which is the job in the scheduler to use.  In my case, it was 3 when I created the job, and the 0 is to specify the task, which every job has by default.   We then have “-np 2″ which is used to specify that we will be using 2 nodes for this job.  Finally you see I have “-machinefile \\kim03a\bin\machines.txt”.  The “-machinefile” is used to specfify the UNV location of a text file that contains the names of the machines that will be part of this job.  The text file should have the names of the machines on each line.

MPIRun Working Directory: Use this location to specify the path where any output will be written to.  Remember NOT to use absolute paths but rather UNC paths to make sure that this location is available to every node.

Application Command: This is the UNV path to the MPI application that you would like to debug.  This application HAS to be compiled to 64-bit and debugging symbols should be in that same directory as well.

MPIShim Location: In this location, specify the path to the mpishim.exe binary that you copied in step 2 of this tutorial.  Remember, mpishim should exist on each and every one of the machines at the specified local path.
MPI network security mode: I usually change it to Accept connections from any address to avoid problems

You probably also noted that there is an Application Arguments window.  In this row you would specify any additional commands you would like to send to the application.

Apply the settings, hit F5 and you should be ready to go and debug your processes.   While trying to get this to work, I experienced pretty much every error out there, so post in the comments if you any issues and I will help you resolve them.   Happy debugging!