ArtinSoft's Blogs

Software Migration Experts
Welcome to ArtinSoft's Blogs Sign in | Join | Help
in Search

Jose Aguilar's Blog

All things migrations, software and technology

October 2006 - Posts

  • MSDN Pre-Configured Virtual Machine Images

    If you are a MSDN subscriber, you have access to Virtual Machine images that are preconfigured with most Microsoft’s products:

    MSDN Subscribers have access to a series of Virtual Images containing a fully functional installation of Windows Server 2003, SQL Server 2005, Visual Studio 2005 Team Suite, and Visual Studio 2005 Team Foundation Server. These Virtual Images are a benefit of your MSDN subscription and are available for download from the MSDN Subscriber download area.

    I copied the paragraph above from Visual Studio’s Evaluation page. You do need to have an MSDN subscription to access these images. They are a great way to evaluate Microsoft’s products without commiting a physical machine to the evaluation, or having to spend time installing and configuring a server.

    This is another great example of how virtualization is making our lives easier!

  • VHD Spec Available for Download

    The VHD format specification is now available for download. The specification contains all the technical details for reading/writing and modifying VHD images. This has a lot of potential, and can be used for things like backup, antivirus scans, image management, disk conversion, and others. The spec was released under Microsoft’s Open Specification Promise:

    As of Tuesday, October 17th 2006, Microsoft is providing access to the VHD Image Format Specification Document as a part of the Open Specification Promise (OSP). The OSP provides broad use of Microsoft patented technology necessary to implement a list of covered specifications. The goal of the OSP is to provide our customers and partners with additional options for implementing interoperable solutions. Please reference the OSP Website for complete details.

    Link to the Press Release: Microsoft Enhances Interoperability With Open Virtualization Format
    Link to download page: Virtual Hard Disk Image Format Specification

  • Using vhdmount.exe under Windows 2003 Server R2

    When you try to mount a VHD using the vhdmount tool, you may get this error message:

    C:\VMs>vhdmount.exe /m DISK.vhd

    The VHD file is successfully plugged in as a virtual disk device. However, VHD mount was unable to mount all volumes on the disk. Use Disk Manager to mount the volumes.

    The issue is that the drivers are not signed for WHQL, so you need to follow the same steps as detailed in this blog post to make it work (as in Windows XP). Another option, however, is to set the WHQL signing option is to Ignore. This can be done through Control Panel->System->Hardware->Driver Signing:

    VHDMOUNT

    Once you do this, you’ll be able to mount VHD files without any further errors.

  • HP and Intel Developer Workshops - Atlanta

    There’s going to be a new HP and Intel Developer Workshop in Atlanta in a couple of weeks, on Oct. 24–26. As with the previous workshops, we will do the classes for the 64–bit Windows track.

    This is the last workshop for this year. That means that is the last oportunity this year to get this hands-on traning AND an Itanium machine!!

    Posted Oct 13 2006, 01:44 AM by Jaguilar with no comments
    Filed under:
  • MSDN Webcast on moving from VB6 to VB.NET

    My coworker Hendel Valverde will be presenting a webcast called Complete Methodology for Migrating Microsoft Visual Basic 6.0 to Visual Basic .NET, tomorrow at 1:00 PM Pacific. It covers all the steps necessary to prepare and perform migrations from VB to VB.NET, from what to look for during the analysis and planning stages to the final testing of the migrated application.

    Link: MSDN Webcast: Complete Methodology for Migrating Microsoft Visual Basic 6.0 to Visual Basic .NET (Level 200)

    And here’s the link to ArtinSoft’s press release: ArtinSoft and Microsoft Announce New Webcast on VB6 to .NET 2005 Migration Methodology.

     

  • Virtual PC 2007 Beta is out

    Virtual PC 2007 Beta is now available for download from http://connect.microsoft.com. As with other beta software, you need to register for the beta first.

    This is a long overdue upgrade that finally supports hardware virtualization. It includes:

    • Hardware-assisted virtualization (both AMD and Intel)
    • Support for Vista both as host and guest OS
    • Support for 64–bit Hosts
    • Bug Fixes and Performance Enhacements
  • Multicore lab Thread Checker mystery error... solved!!

    Some of you may recall that on some events, we got an error message on Intel Thread Checker during the Multicore lab. No matter what we did, even if we solved all the concurrency issues related to our code, the Thread Checker would always log this message:

    Write -> Read data-race Memory read at [PrimesInstrumented.exe, 0x2468] conflicts with a prior memory write at [PrimesInstrumented.exe, 0x16816] (flow dependence)

    During the labs, we have said that we've been working out the solution with the Intel support people - and now we have an answer!!The thing is that you can work with Thread Checker in two ways:
    1. Use compiler based instrumentation. With this, you basically need to add the /Qtcheck flag to the compiler command line to instrument the binary. Once it is instrumented and you run it, it will create a file called "Threadchecker.thr", that you can then load in the VTune Thread Checker. To do this, you need to use the following command lines: (using the primes example from the lab)

      icl /c /Zi primes.cpp /Qopenmp /Qtcheck /Od
      link primes.obj /out:PrimesInstrumented.exe /fixed:no /DEBUG


    2. Use Thread Checker to intrument the application. In this scenario, you don't intrument the binary at compile time, but have Thread Checker intrument it when running the application. For this, you need to build the application with the following command lines:

      icl /c /Zi primes.cpp /Qopenmp /MD /Od
      link primes.obj /out:PrimesInstrumented.exe /fixed:no /DEBUG


      And then load it in Thread Checker.

    The error we were doing on the lab is that we were using both compiler and "Thread Checker" instrumentation, and that caused Thread Checker to report conflicts that are outside of the program and in the runtime libraries. Now, using either option (BUT not both at the same time) the strange error is gone!

    Thanks to Vasanth Tovinkere at Intel who really helped us out with this problem!!

    BTW, this is repeating an old blog post I did for the 64–bit Advantage Blog. The post was deleted for some reason. Since I consider this information to be important, I am re-posting it here.

    Posted Oct 09 2006, 05:08 PM by Jaguilar with no comments
    Filed under: ,
  • OpenMP on Visual Studio

    You can create C++ application in Visual Studio that use OpenMP. When you run an application created with OpenMP and VS.NET, however, you may get this annoying error message: “This application has failed to start because vcompd.dll was not found. Re-installing the application may fix this problem.”:

    omp-error

    When we tried this, we were puzzled by this error message, especially since it works with the Intel Compiler flawlessly. Well, it turns out that you need to include omp.h in your files ALWAYS when you use OpenMP from Visual Studio. This is not required on other compilers if you’re only using the OpenMP pragmas, but it is an issue with Visual Studio.

    Thanks to Kang Su for pointing this out in his blog – I was going crazy trying to figure out what was wrong.

    Also remember to enable OpenMP support in the C++ Project properties. This setting is in Configuration Properties->C/C++->Language->OpenMP Support.

    Posted Oct 05 2006, 09:57 PM by Jaguilar with 6 comment(s)
    Filed under: ,
  • OpenMP is your friend

    OpenMP is very easy-to use API that you can use to very rapidly add multi-threading to your C/C++ applications. OpenMP allows you to parallelize the execution of a region of code by just adding a few pragmas to the code. For example, take this code:

       for(int i = 0;i<=100;i++){
           a[i] = a[i]*10;
           ...
       }

    The code above performs a for loop sequentially. Since each iteration could be executed independently, we can easily add multi-threading to the application by adding these simple pragmas:

    #pragma omp parallel for
       for(int i = 0;i<=100;i++){
           a[i] = a[i]*10;
           ...
       }

    The omp pragmas tell the compiler to generate code to parallelize the execution of the for loop. That means that if you run this code on a 4 core machine, it will create 4 threads, and each one will execute 25 iterations of the loop. Just by adding those pragmas, you now have a multi-threaded application that takes advantage of multi-core systems.

    Yes, it's that simple.

    Posted Oct 04 2006, 05:42 PM by Jaguilar with no comments
    Filed under: ,

This Blog

Syndication

Powered by Community Server (Non-Commercial Edition), by Telligent Systems