Something More for Research

Explorer of Research #HEMBAD

  • Top Clicks

  • Subscribe by Email

  • Enter your email address to follow this blog and receive notifications of new posts by email.

    Join 5,056 other subscribers
  • Blog Stats

    • 177,695 hits
  • Subscribe

  • HEMBAD

  • Calendar

    May 2024
    M T W T F S S
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
  • Goodreads

  • Spam Blocked

  • Pages

  • Blogs I Follow

  • Categories

  • RSS

  • Authors

Archive for the ‘Computer Softwares’ Category

Bulk Rename Utility

Posted by Hemprasad Y. Badgujar on July 18, 2015


These file rename software let you rename multiple files easily. All these file rename software are completely free and can be downloaded to Windows PC. These file rename softwareoffer various features, like: rename multiple files at once,rename files as well as folders including sub-folders, can add, remove, replace strings to file names, can copy and rename, move and rename files, supports all types of files (including images, audio/video, office documents etc.), rename files based upon their EXIF data or meta data, and more. Check out this list of free file rename software and find out which you like best.

File Renamer Basic

File Renamer Basic is a simple yet powerful program to rename files, folders, and MP3 files easily. You can use its filename filter to easily narrow down your search for specific types of files. You can remove x number of characters starting from x character. You can find and replace text also. Apart from its renaming capabilities, it also has a ID3v1 and ID3v2 tag editor.

Home Page     Download Page

Flexible Renamer

Flexible Renamer is a free and easy to use software for renaming files and folders. You can rename files and folders in single or in batches. It doesn’t require installation as it is a portable application. You can use its simple or advanced rename method to rename your files and folders. You can copy and rename, move and rename, move to recycle bin and can use other various methods too. It supports wildcards also when renaming.

Home Page     Download Page

Advanced Renamer

Advanced Renamer is a free software for renaming files or folders. It uses various methods for creating the new names. It can create new file names by adding, removing, replacing, giving new name based upon the file information, or changing case. You can test the batch settings before you start renaming. It is also available in portable version.

Home Page     Download Page

BatchRename Free Edition

BatchRename Free is a free files and folders renaming software. It uses two steps to rename files and folders. In step one you can add files and folders to rename and in second step you can set rules for renaming according to your requirements. It has various predefined rules for various types of files. It has some image editing features also, like change format, flip, rotate, resize, shrink etc. You can preview renaming. It installs and uninstalls easily.

Home Page     Download Page

Bulk Rename Utility


Bulk Rename Utility is a free utility to rename files and folders with flexible criteria. It can process sub folders, can add date stamps, auto numbers, search and replace, change time stamps etc. It offers 13 primary functions to rename. It can handle file attributes, metadata, and sophisticated regular expressions. You can preview file names before you actually start renaming. This software is for power users.

Home Page     Download Page

Batch File Modifier

Batch File Modifier is a multipurpose software and it also has the functionality of renaming files and folders. It has a wizard like interface. You can set the naming options from the options window and can use the various tabs according to your requirement of renaming. You can add prefix or suffix to file names. You can preview file names also in this window. You can undo the rename process also.

Home Page     Download Page

XnView


XnView is actually a multi format graphics browser, viewer, and converter, but it also has the functionality of renaming files. It has an Explorer like interface. You can browse for folder whose files have to be renamed and select the files to be renamed. Select the batch rename option from the context menu. Set the rename options from the interface according to your choice. You can view the new name of files in real time. On satisfying the new names start the rename process by clicking on Rename button.

Home Page     Download Page

ReNamer

ReNamer is a simple file renaming tool. It lets you rename files and folders according to standard renaming procedures, including case changes, prefixes, suffixes, replacements, adding number sequences etc. Also supports changing of file extensions. You can add the rules before you start renaming. This software is for beginners as well as for advance users.

Home Page     Download Page

IrfanView

IrfanView is a simple, small, fast, compact and innovative free graphic viewer software and also has the functionality of renaming files. You can use it to rename files from any specified folder and its subfolders. You can set the rename options before you start renaming. You can also preview the batch rename results. You can see the errors and warnings in the preview mode. It is a very simple and easy to use software to rename the files.

Home Page     Download Page

Rename It

Rename It is a simple file renaming utility specifically designed for new computer users. It lets you rename a file or a file extension easily. It has an option of massive rename which lets you rename multiple files or extensions easily. If there is a common text in the name of files, it can be easily renamed with the help of it.

Home Page     Download Page

Effective File Search

Effective File Search is actually a file searching utility and also has a function of renaming files. You can use it to rename the filenames to either lowercase or uppercase only. To use it, first browse for a folder from which files have to be renamed by using its browse button. You can include sub directories also in the search. Now search for all files or for any particular format. Select the files from the results and select rename files options from the Actions menu.

Home Page     Download Page

Ken Rename

Ken Rename is a free batch file renaming utility. It has various configuration options to rename files. Some of its features include: filter files with wildcard, convert to lowercase or uppercase, replace particular text from names, insert digit and increment options, EXIF support etc. You can view the real time preview of renamed files before actually renaming. It is for beginners as well as for advance users.

Home Page     Download Page

PhotoRenamer

PhotoRenamer is a free software which lets you rename your digital photos according to the date and the time you took the pictures. It uses date and time or EXIF Data for renaming or you can use renaming masks. Renaming masks are format specifications stings for e.g. day, month, year, hour, min, sec, photo number and free text. Note: If you choose file selection filter as ., then you can rename any type of file according to renaming mask you use.

Home Page     Download Page

Image Renaming

Image Renaming is a free software to rename image files. You can rename image files based on date and time criteria. You can choose from various predefined formats or can customize your own. It comes as a ZIP file and you can extract it to the desired location and run it. It doesn’t require installation and can be used as a portable software. It is very small in size.

Home Page     Download Page

Panda Batch File Renamer

Panda Batch File Renamer is a free file renaming software. It lets you rename files in batch mode. You can choose from various rename options. You can use its insert, replace, remove, and other categories of renaming options. It shows the current file name and final file names side by side. You can add multiple renaming options and they can be queued. It stores the history of changes so you can undo the rename process if required.

Home Page     Download Page

Aoao Batch Rename

Aoao Batch Rename is free and easy to use file renaming software. You can rename multiple files at once. You can rename all file formats. It is good for renaming image files. You can set the file names with increasing alphabet or digit. This software can be used for simple renaming tasks.

Home Page     Download Page

RenPhoric

RenPhoric is a simple and easy to use batch renaming software. It is good for search and replace text in the file names. You can include subdirectories too for renaming files. It allows you to use regular expressions for renaming process. It is a great choice for you to batch rename images, songs, or any other files that are big in numbers.

Home Page     Download Page

Rename JPEG Files

Rename JPEG Files is a free software to rename JPG files in bulk quantity. It uses predefined file naming formats. You can drag and drop files to its window or specify a target directory that contains JPG files. It also displays the information about JPG files selected, such as name, creation date, resolution etc. It shows the file names before and after side by side. You can build the name format or use the default format.

Home Page     Download Page

File Renamer

File Renamer is a free and handy software to rename multiple files at once. You can batch rename files, add or remove text strings from file names, can change file extensions, add numbers sequentially to file names, change to upper case or lowercase, trim characters etc. It also has an undo option for last rename process. It doesn’t require installation and can be used as a portable software.

Home Page     Download Page

FMS File Renamer

FMS File Renamer is a simple and useful tool to rename files. It has various features to rename files. You can try various combinations for renaming the files. You can add strings to prefix, suffix, or at a position you choose in the resultant file names. You can delete, replace, change case (upper of lower), move/copy etc. in one go. You can preview every step by clicking green check mark. The program is suitable for any type of user (newbie or advance).

Home Page     Download Page

Rename Master

Rename Master is a free software to rename multiple files with few clicks. It is a simple tool to rename multiple files easily. It has 15 types of rename options and you can configure each of them separately. It lets you add, remove, or replace strings to file names easily. You can rename folders too with this utility. It also supports scripts to save the renaming options. It doesn’t require installation.

Home Page     Download Page

Batch Rename .EXE

Batch Rename .EXE is a free software to rename multiple files at once. It can rename files in four easy steps in a wizard like interface. You can add files or folders to rename in step one. In step two set the rules for renaming. You can preview the results in the step three and finally rename them in step four. It can include the metadata in the names of files for renaming.

Home Page     Download Page

A.F.5 Rename your files

A.F.5 Rename your files is a free software to rename files easily. It has various features including drag & drop support, preview before renaming, undo last rename action, create batch program files, save rename settings, import filenames from a text file. You can apply multiple types of values to the file names for renaming like text string, size, digit counter, metadata etc. You can undo the last rename changes also by clicking again on rename button.

Home Page     Download Page

File Renamer

File Renamer is a free software for renaming multiple files at once. It can be used to rename images as well as all types of files. You can use file mask to filter files of specific type (for e.g. *.png). You can set the new name with incremental digit. It also has an option to move the renamed files to a different folder.

Home Page     Download Page

Fast File Renamer

Fast File Renamer is a free software to rename files based upon criteria you choose. You can replace, remove, or insert strings to file names. It has a simulate function which lets you preview the files before you actually rename. When satisfied with the new name, click undo simulate button and click perform rename button to rename files. It can be used as portable software.

Home Page     Download Page

Lupas Rename

Lupas Rename is a free and easy to use software to rename multiple files. You can rename folders too. Files in the sub directories can also be renamed. It also supports undo last rename operation. You can filter files for any particular type using wildcards. You can apply multiple options together (name, extension, and auto number) in the rename process. It shows the real time preview of results.

Home Page     Download Page

Wild Rename

Wild Rename is a very simple and easy to use file renaming utility. You can perform the task of renaming files with regular expressions. It doesn’t require installation and can be used as a portable software. It can help you to rename file names by converting lower case, upper case, or normal case. You can add strings to file names, replace specific text from file names, add counters etc.

Home Page     Download Page

Siren

Siren is a free, small but powerful renaming tool for Windows. It is for normal users as well as for power users. You can use it to rename multiple files and folders. It uses expressions for renaming process. You can build your own customized naming expression by using help. It doesn’t require installation and can be used as a portable software.

Home Page     Download Page

MP3 Rename

MP3 Rename is a free utility to rename MP3 files easily. It can rename MP3 files according to rules that you specify. You can replace the text with your text from the names of MP3 files. It doesn’t require installation and can be used as a portable software. You can add ID3 v2 tags to file names. You can move files into folders according to artist name also. It is a good software to rename MP3 files.

Home Page     Download Page

Ant Renamer

Ant Renamer is a very useful multiple files and folders renaming software. It can rename multiple files, folders with sub-folders and sub-files. It can also rename multiple strings from the file and folder name. Actually, this software provides dozens of file renaming features, some of them are: Move string, String insertion, Change case, Use date & time, Enumeration, etc. This small size portable software is one of the best file renaming software.

Home Page     Download Page

AS-File Renamer

AS-File Renamer is a free software for renaming files. It renames files by providing serial numbers to them. Suppose you capture a snapshot with your camera. Then you can rename the snapshots as abc 1, abc 2, abc 3. If you want to rename your files according to serial numbers then you can try out this freeware.

Home Page     Download Page

LeCase

LeCase is a free and handy file renamer software for your computer. With the help of this freeware you can easily rename all files in a particular directory to lowercase names or uppercase names. By using this freeware you can also rename your picture files in a directory by specifying various numbers to it. e.g x1, x2, x3 etc.

Home Page     Download Page

File Renamex

File Renamex is a free file renamer software to rename files quickly. With the help of this freeware you can rename files in a easy manner. You can rename any type of file e.g. video, audio, picture, document etc. This freeware lets you do file renaming in bulk. It will rename files as per numbering format and prefix.

Home Page     Download Page

KuKnet FileRenamer

KuKnet FileRenamer is a free software for renaming multiple files. It is a powerful tool for renaming files. You can add files or folders by click of a button or by drag and drop to its window. It shows the preview of image files. You can set rules for renaming files and can save them for future use. You can use search and replace, numeration, add file size, date/time, ID3 tag etc. to rename file names. It comes as a single executable and doesn’t require installation.

Home Page     Download Page

EXIF Image Renamer

EXIF Image Renamer is a simple tool for renaming image files based upon their EXIF data. You can select the folder with images to rename by browsing for its location through the program interface. It does not have preview facility so new file names will change according to EXIF data present. It renames the images in sub folders too.

Home Page     Download Page

Batch Rename

Batch Rename is an easy to use but powerful renaming tool for Windows. It lets you rename files and folders according to the rules you set. You can add single rule or combine multiple rules for renaming. For e.g. you can prefix or suffix any text to file names, add counter at specific position, remove strings etc. to the file names. You can also preview the file names before renaming.

Home Page     Download Page

MP3 Renamer

MP3 Renamer is a free tool for renaming large amount of MP3 files. It has various predefined presets for renaming MP3 files like remove extra hyphens, change to sentence case, remove URLs, remove dots, change to upper case etc. You can rename MP3 files based upon their ID3 tags values also. It has a inbuilt MP3 player also.

Home Page     Download Page

Tiny Renamer

Tiny Renamer is a very small and easy to use file renaming utility. You can rename multiple files easily. You can shorten long file names, use simple regular expression or advance regular expression for renaming. You can rename file extension too with the help of it. It has a replace and replace with text box in its main window. It is a good choice for renaming multiple MP3 files.

Home Page     Download Page

JFRenamer

JFRenamer is a free file and folder renaming software. It lets you rename the files and folders according to rules you set. You can add multiple rules to the list for renaming. You can configure each rule separately according to the requirement. You can set various rules like change case, replace, delete, insert, if/else etc. The software is written in JAVA and JAVA must be installed on the system to use it.

Home Page     Download Page

Bica File Renamer

Bica File Renamer is a simple and easy to use file renaming utility. It lets you rename files and folders with few clicks. You can apply many different rename options like search and replace, change case, sequential numbering, insert, remove, date/time etc. It is small in size and doesn’t require installation. You can use it as a portable software too.

Home Page     Download Page

Infinite Dreamers FileRenamer

Infinite Dreamers FileRenamer is a free software to rename multiple files at once. To rename files you have to navigate to the directory whose files you want to rename. You can select all files at once from any directory using context menu. You can replace old name containing text string with new text string easily. You can add multiple replace strings simultaneously.

Home Page     Download Page

Rename Us Pro

Rename Us Pro is a free file renaming utility for Windows. It lets you rename files in batch mode. You can set various options for renaming. You can add multiple rules for renaming like change case, enumeration, adding prefix or suffix to file names, using MP3 tags, file date etc. You can run it in the test mode to check the results before actually renaming.

Home Page     Download Page

Renamer

Renamer is a free and simple file renaming software for Windows. It is very tiny in size but a useful file renaming tool. It has various functions to rename files. You can use its replace with space, search and replace, line by line replace, insert text at position, remove text by position and other various functions to rename files.

Home Page     Download Page

UltimateReNamerJG

UltimateReNamerJG is a small, simple, and easy to use rename tool for Windows. It lets you batch rename multiple files at once. You can add multiple rules for renaming. With the help of it you can insert, delete, replace text strings from file names, can change extension, can change case, set incremental digits to specific position etc. It has a restore backup option if you accidently change file names.

Home Page     Download Page

FileNameStringReplacer

FileNameStringReplacer is simple file renaming utility. It lets you find and replace specific text string from file names. It doesn’t require installation and can be used as a portable software. You can select the folder whose files have to be renamed from the select button. Set the search string to find in file names and type the replace with string to start renaming. It is easy to use software.

Home Page     Download Page

RKrenamer

RKrenamer is a simple tool for renaming multiple files at once. You can rename large number of files in one go. You can insert text strings in file names, replace text, delete text, change case (upper/lower) or serialize the files. It also supports drag and drop feature. It has a simple and easy to use user interface.

Home Page     Download Page

Personal Renamer

Personal Renamer is a free renaming tool for Windows. It lets you rename multiple files in a folder easily. It is a powerful batch file renamer and supports numbering or lettering files etc. You have to set the source and destination directory (both can be same) before you start renaming. You can set the various renaming rules in the advanced menu. You can undo the rename mistakes too.

Home Page     Download Page

RenameApp

RenameApp is a free and easy to use file renaming software for Windows. It lets you easily rename files based upon the specified criteria and order. It supports drag and drop feature. You can preview rename results before you actually start the renaming process. You can add prefix or suffix to the file names, use specific names, can rename file extension etc.

Home Page     Download Page

SolidRenamer

SolidRenamer is a free and easy to use file renaming software for Windows. It lets you rename files easily. It supports various rules for renaming files including prefixes, suffixes, inserting of text, clipping, replace text, change case, enumerations etc. You can set multiple rules for renaming in a sequence. It also has a preview facility before actually starting renaming process.

Home Page     Download Page

File Batch Renamer

File Batch Renamer is a file renaming tool available free. You can rename multiple files or multiple types at once. You have to choose a common name, numbering style and separator to start renaming. You can select the output folder same or different from the source. It doesn’t have many options and is a simple file renaming tool.

Home Page     Download Page

LuJoSoft Rename-All

LuJoSoft Rename-All is a simple and easy to use application to rename files. Some of its features includes add text to file names, remove text from file names, replace text, change case as uppercase or lowercase, capitalize each word etc. It has a preview option also. It shows the renamed files and original file names side by side.

Home Page     Download Page

PSRenamer

PSRenamer is an open source program to rename files in batch mode. It lets you change any part of file name or its extension. You can add sequential numbers to file names. It has preview and undo functions also. As it is a JAR file and JAVA must be installed on the system to use it. It is small in size and can be used as a portable software.

Home Page     Download Page

Daanav File Renamer

Daanav File Renamer is a free software to rename multiple files at once. It lets you rename various files with one click. You can find and replace text in the filenames, add incremental numbers, remove characters up to length you specify, change case (upper or lower) etc. to the file names. It is easy to use and has a user friendly interface.

Home Page     Download Page

Posted in Computer Research, Computer Softwares, Entertainment | Tagged: , , | Leave a Comment »

Building VTK with Visual Studio 2013

Posted by Hemprasad Y. Badgujar on April 30, 2015


Building VTK5 with Visual Studio

Download

  1. Download VTK 5.10.1 the (VTK-5.10.1.zip) to unzip the file. (C: \ VTK-5.10.1)Http://Www.Vtk.Org/VTK/resources/software.Html#previous
    Https://Github.Com/Kitware/VTK/tree/v5.10.1

CMake

  1. You want to specify the destination of the input destination and solution files of source code.
    • Where is the source code: C:\VTK-5.10.1
    • Where is build the binaries: C:\VTK-5.10.1\build
  2. Press the [Configure] to select the Visual Studio that is the target.
  3. It makes various settings.
    • BUILD_SHAREED_LIBS ☑ (check)
    • BUILD_TESTING ☐ (uncheck)
    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\VTK (or C:\Program Files (x86)\VTK)
  4. Press the [Add Entry] to add the following settings.
    Name: CMAKE_DEBUG_POSTFIX
    Type: STRING
    Value: -gd
    Description:

    * Debug string to be added to the file name of the build generated files of the (last).

  5. And output the solution file by pressing the [Generate].

Build

  1. Start Visual Studio with administrative privileges VTK solution file (C: \ VTK-5.10.1 \ build \ VTK.sln) to open.
    (If you do not start with administrator privileges Visual Studio INSTALL to fail.)
  2. It wants to modify the source code.
    • vtkOStreamWrapper.cxx
      60 line

      //VTKOSTREAM_OPERATOR(ostream&);
      vtkOStreamWrapper& vtkOStreamWrapper::operator << (ostream& a) {
        this->ostr << (void *)&a;
        return *this;
      }
      
    • vtkEnSightGoldBinaryReader.cxx
      3925 line

      if (this->IFile->read(result, 80).fail())
      

      3944 line

      if (this->IFile->read(dummy, 8).fail())
      

      4001 line

      if (this->IFile->read(dummy, 4).fail())
      

      4008 line

      if (this->IFile->read((char*)result, sizeof(int)).fail())
      

      4025 line

      if (this->IFile->read(dummy, 4).fail())
      

      4048 line

      if (this->IFile->read(dummy, 4).fail())
      

      4055 line

      if (this->IFile->read((char*)result, sizeof(int)*numInts).fail())
      

      4072 line

      if (this->IFile->read(dummy, 4).fail())
      

      4095 line

      if (this->IFile->read(dummy, 4).fail())
      

      4102 line

      if (this->IFile->read((char*)result, sizeof(float)*numFloats).fail())
      

      4119 line

      if (this->IFile->read(dummy, 4).fail())
      
    • vtkConvexHull2D.cxx
      31 lines

      #include <algorithm>
      
    • vtkAdjacencyMatrixToEdgeTable.cxx
      31 lines

      #include <algorithm>
      
    • vtkNormalizeMatrixVectors.cxx
      30 Line

      #include <algorithm>
      
    • vtkPairwiseExtractHistogram2D.cxx
      39 line

      #include <algorithm>
      
    • vtkControlPointsItem.cxx
      35 lines

      #include <algorithm>
      
    • vtkPiecewisePointHandleItem.cxx
      31 lines

      #include <algorithm>
      
    • vtkParallelCoordinatesRepresentation.cxx
      83 line

      #include <algorithm>
      
  1. It wants to build the VTK. (ALL_BUILD)
    1. The configuration of the solution (Debug, Release) set the.
    2. Choose the ALL_BUILD project from Solution Explorer.
    3. [Build]> to build VTK Press [Build Solution].
  2. It wants to install the VTK. (INSTALL)
    1. Choose the INSTALL project from Solution Explorer.
    2. [Build]> [projects only]> to install the VTK Press [INSTALL only the Build menu.CMAKE_INSTALL_PREFIX necessary files are copied to the specified output destination.

Environment Variable

  1. Environment variable VTK_ROOT create a VTK of path: Set the (C \ Program Files \ VTK).
  2. Environment variable Path I add a% VTK_ROOT% \ bin; to.

Building VTK6 with Visual Studio

Download

  1. Download VTK 6.1.0 the (VTK-6.1.0.zip) to unzip the file. (C: \ VTK-6.1.0)Http://Www.Vtk.Org/VTK/resources/software.Html#latestcand
    Https://Github.Com/Kitware/VTK/tree/v6.1.0

CMake

  1. You want to specify the destination of the input destination and solution files of source code.
    • Where is the source code: C:\VTK-6.1.0
    • Where is build the binaries: C:\VTK-6.1.0\build
  2. Press the [Configure] to select the Visual Studio that is the target.
  3. It makes various settings.
    • BUILD_SHAREED_LIBS ☑ (check)
    • BUILD_TESTING ☐ (uncheck)
    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\VTK (or C:\Program Files (x86)\VTK)
  4. Press the [Add Entry] to add the following settings.
    Name: CMAKE_DEBUG_POSTFIX
    Type: STRING
    Value: -gd
    Description:

    * Debug string to be added to the file name of the build generated files of the (last).

  5. And output the solution file by pressing the [Generate].

Build

  1. Start Visual Studio with administrative privileges VTK solution file (C: \ VTK-6.1.0 \ build \ VTK.sln) to open.
    (If you do not start with administrator privileges Visual Studio INSTALL to fail.)
  2. It wants to build the VTK. (ALL_BUILD)
    1. The configuration of the solution (Debug, Release) set the.
    2. Choose the ALL_BUILD project from Solution Explorer.
    3. [Build]> to build VTK Press [Build Solution].
  3. It wants to install the VTK. (INSTALL)
    1. Choose the INSTALL project from Solution Explorer.
    2. [Build]> [projects only]> to install the VTK Press [INSTALL only the Build menu.CMAKE_INSTALL_PREFIX necessary files are copied to the specified output destination.

Environment Variable

  1. Environment variable VTK_DIR create a VTK of path: Set the (C \ Program Files \ VTK).
  2. Environment variable Path I add a% VTK_DIR% \ bin; to.

Building VTK6 + Qt5 with Visual Studio

Download

  1. Download VTK 6.1.0 the (VTK-6.1.0.zip) to unzip the file. (C: \ VTK-6.1.0)Http://Www.Vtk.Org/VTK/resources/software.Html#latestcand
    Https://Github.Com/Kitware/VTK/tree/v6.1.0
  2. Qt 5.4.0 with OpenGLをダウンロード、インストールする。(C:\Qt)
    http://www.qt.io/download-open-source/#

    • Qt 5.4.0 for Windows 32-bit (VS 2013, OpenGL, 694 MB)
      (qt-opensource-windows-x86-msvc2013_opengl-5.4.0.exe)
    • Qt 5.4.0 for Windows 64-bit (VS 2013, OpenGL, 709 MB)
      (qt-opensource-windows-x86-msvc2013_64_opengl-5.4.0.exe)

CMake

  1. You want to specify the destination of the input destination and solution files of source code.
    • Where is the source code: C:\VTK-6.1.0
    • Where is build the binaries: C:\VTK-6.1.0\build
  2. Press the [Configure] to select the Visual Studio that is the target.
  3. It makes various settings.
    (Grouped and helpful to put a check to Advanced.) * Win32 is Msvc2013_opengl , x64 is msvc2013_64_openglspecified in. Ungrouped Entries

    • Qt5Core_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Core
    • Qt5Designer_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Designer
    • Qt5Gui_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Gui
    • Qt5Network_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Network
    • Qt5OpenGL_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5OpenGL
    • Qt5Sql_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Sql
    • Qt5WebKit_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5WebKit
    • Qt5WebKitWidgets_DIRC:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5WebKitWidgets
    • Qt5Widgets_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Widgets
    • Qt5Xml_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/cmake/Qt5Xml

    BUILD

    • BUILD_SHAREED_LIBS ☑ (check)
    • BUILD_TESTING ☐ (uncheck)

    CMAKE

    • CMAKE_CONFIGURATION_TYPES Debug;Release
    • CMAKE_INSTALL_PREFIX C:\Program Files\VTK (or C:\Program Files (x86)\VTK)

    Module

    • Module_vtkGUISupportQt ☑ (check)
    • Module_vtkGUISupportQtOpenGL ☑ (check)
    • Module_vtkGUISupportQtSQL ☑ (check)
    • Module_vtkGUISupportQtWebkit ☑ (check)
    • Module_vtkRenderingQt ☑ (check)
    • Module_vtkViewsQt ☑ (check)

    OPENGL

    • OPENGL_gl_LIBRARY opengl
    • OPENGL_glu_LIBRARY glu32

    QT

    • QT_MKSPECS_DIR C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/mkspecs/win32-msvc2013
    • QT_QMAKE_EXECUTABLE C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/bin/qmake.exe
    • QT_QTCORE_LIBRARY_DEBUG C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/Qt5Cored.lib
    • QT_QTCORE_LIBRARY_DEBUG C:/Qt/Qt5.4.0/5.4/msvc2013_64_opengl/lib/Qt5Core.lib

    VTK

    • VTK_Group_Qt ☑ (check)
    • VTK_INSTALL_QT_PLUGIN_DIR ${CMAKE_INSTALL_PREFIX}/${VTK_INSTALL_QT_DIR}
    • VTK_QT_VERSION 5
  4. Press the [Add Entry] to add the following settings.
    Name: CMAKE_PREFIX_PATH
    Type: PATH
    Value: C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64
    (or C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86)
    Description:

    * Windows Kits path if Visual Studio 2013 8.1 \ Lib \ Winv6.3, if Visual Studio 2012 8.0 I specify the \ Lib \ Win8.

    Name: CMAKE_DEBUG_POSTFIX
    Type: STRING
    Value: -gd
    Description:

    * Debug string to be added to the file name of the build generated files of the (last).

  5. And output the solution file by pressing the [Generate].

Build

  1. Start Visual Studio with administrative privileges VTK solution file (C: \ VTK-6.1.0 \ build \ VTK.sln) to open.
    (If you do not start with administrator privileges Visual Studio INSTALL to fail.)
  2. It wants to build the VTK. (ALL_BUILD)
    1. The configuration of the solution (Debug, Release) set the.
    2. Choose the ALL_BUILD project from Solution Explorer.
    3. [Build]> to build VTK Press [Build Solution].
  3. It wants to install the VTK. (INSTALL)
    1. Choose the INSTALL project from Solution Explorer.
    2. [Build]> [projects only]> to install the VTK Press [INSTALL only the Build menu.CMAKE_INSTALL_PREFIX necessary files are copied to the specified output destination.

Environment Variable

  1. Environment variable VTK_DIR create a VTK of path: Set the (C \ Program Files \ VTK).
  2. Environment variable QTDIR by creating a Qt of the path (C: \ Qt \ Qt5.4.0 \ 5.4 \ msvc2013_64_opengl \ (or C: \ Qt \ Qt5.4.0 \ 5.4 \ msvc2013_opengl \)) to set.
  3. Environment variable Path in;% VTK_DIR% \ bin;% I add a QTDIR% \ bin.

Posted in CLOUD, Computer Languages, Computer Softwares, Computer Vision, Computing Technology, CUDA, GPU (CUDA), OpenCV | Tagged: , , , | 4 Comments »

20 Compelling Reasons to Spend Less Time on Facebook and More Time on LinkedIn

Posted by Hemprasad Y. Badgujar on April 8, 2015


If you’re like most college students, chances are good that you spend more time on Facebook than you do on LinkedIn. But if you’re concerned with furthering your career (and you should be), it’s time to switch over to a more professional network. We’ve shared 20 great reasons why you need to be spending your time on LinkedIn much more than Facebook, and we hope they motivate you to make a change for the better. These reasons should be especially compelling for students earning online bachelor’s degrees, as they will have fewer face-to-face networking opportunities and will need to capitalize on their online networking skills to bolster their job hunt.

  1. LINKEDIN IS PROFESSIONAL AT ITS CORE

    LinkedIn was created to connect professionals in online networking; Facebook was not. Although both services have evolved to include elements of each other, they do still remain true to their original purpose, and LinkedIn excels at presenting a professional front.

  2. LINKEDIN IS A GREAT PLACE TO GAIN EXPERT STATUS

    Although experts are increasingly flocking to Facebook, it’s still hard for some people to take the site seriously. On LinkedIn, the setting is much more open to gaining expert status and credibility. Forums, question and answer sections, and groups make it simpler to connect and share your knowledge in a credible way. Students working toward a graduate degree can even share their research with other experts in the field and receive valuable feedback as they complete master’s theses and doctoral dissertations.

  3. YOUR COLLEGE PROFESSORS MIGHT ACTUALLY CONNECT ON LINKEDIN

    Although some colleges take a lax approach to social media, many still frown on Facebook connections between students and professors. But on LinkedIn, connections are typically seen as a positive thing, opening you up to the resources that your professors can share with you, including positive recommendations.

  4. LINKEDIN REPRESENTS A MORE TARGETED AUDIENCE

    Facebook is on track to hit the 1 billion-user mark this year, a figure that basically obliterates LinkedIn’s comparatively small 135 million plus users. One might think that more users means more exposure, and that would be correct, but on Facebook, you can’t be sure that the millions of users are actually online to hear about your professional life. On LinkedIn, you can expect to reach a more targeted audience that is connected to you, interested in your work, and willing to listen to what you have to say.

  5. YOU’RE MORE LIKELY TO GET A RECOMMENDATION ON LINKEDIN

    A recommendation on either LinkedIn or Facebook is a great way to put your best foot forward, but you’re simply more likely to land one on LinkedIn. Recent stats show that 36% of LinkedIn users make a recommendation, compared to 27% of Facebook users. LinkedIn also has a 57% interested recommendation response, compared with 42% on Facebook.

  6. LINKEDIN USERS LOG IN WITH A SENSE OF PURPOSE

    While on Facebook, you may be surfing to find out about the latest cat video or your friend’s wedding photos, but LinkedIn tends to lead to a more task-driven visit. Users log in to check out job and collaboration opportunities, people to hire, and relevant industry news.

  7. LINKEDIN IS A GREAT PLACE TO SHOWCASE YOUR UNPAID WORK

    Even if you haven’t been hired for a job in your life, chances are you’ve volunteered or done an internship before graduation. LinkedIn is specifically designed to help you showcase this experience.

  8. LINKEDIN IS AN ONLINE RESUME

    LinkedIn is a great place to collect references, share your work experience, professional samples, and more. Your Facebook Timeline is much more like a digital scrapbook of personal experiences.

  9. LINKEDIN SEARCHING IS MORE ROBUST

    While you can search for people and terms on Facebook, LinkedIn really shines in this category. You can search for companies, find people to connect with, get news, and more on LinkedIn. Your profile is also highly searchable, and represents a great tool for allowing recruiters to find you.

  10. YOU CAN ACTUALLY TURN YOUR LINKEDIN PROFILE INTO A RESUME

    Although LinkedIn functions as an online resume, it’s also a time saver when it comes to creating one that you can print and hand out. Use this feature to stop neglecting your paper resume and have something to hand in.

  11. FACEBOOK CAN MAKE YOUR SCHOOLWORK SUFFER

    Experts report that students who regularly surf Facebook do not do as well on tests. In fact, some students suffered by as much as an entire grade. They believe that using the social media site takes up valuable study time.

  12. RECRUITERS ARE MORE LIKELY TO SHARE APPLICATIONS ON LINKEDIN

    Facebook and LinkedIn are both experiencing growth in applications shared on their sites. But LinkedIn stands out for the number of candidates who actually apply. You can expect recruiters to go where the interest is, which clearly rests with LinkedIn.

  13. FACEBOOK IS A MAJOR TIME SUCK

    Facebook is fun, but for most users, it takes up much more time than it should. In a comparison, researchers found that Facebook visits resulted in stays of 405 minutes per visitor, compared with 17 minutes on LinkedIn. It is much wiser to spend 17 focused minutes on LinkedIn than several hours frittering your time away on Facebook.

  14. GROUPS ON LINKEDIN ARE HIGHLY EFFECTIVE

    Facebook has groups, but not on the level that LinkedIn does. LinkedIn remains an incredible resource for connecting and networking in industry groups on the site.

  15. YOU’RE MORE LIKELY TO GET HIRED ON LINKEDIN

    In a recent comparison of job search markers on Facebook and LinkedIn, LinkedIn beat Facebook handily in every category. The most interesting and revealing, however, was social employee hires, with LinkedIn earning 73% and Facebook at a low 22%.

  16. LINKEDIN IS A GREAT PLACE FOR BUSINESS INTRODUCTIONS

    One of the best features of LinkedIn is the ability to be introduced to new business contacts through the site, especially through contacts you already know. So if you’ve recently completed a business degree and want to expand your professional connections, LinkedIn in the place to be.

  17. LINKEDIN USERS HAVE MORE MONEY

    Out of all the popular social media sites, LinkedIn users have the highest average income of $89K. If you’re looking to earn a good salary, you’ll be in great company on LinkedIn.

  18. LINKEDIN ACTIVITIES ARE MORE ATTUNED TO JOB PROMOTION

    The top activities on LinkedIn are industry networking, keeping in touch, and networking between coworkers.

  19. LINKEDIN REALLY SHINES WITH RELEVANCE

    While your friends on Facebook may be sharing music videos that you scroll right past, LinkedIn works hard to bring you content that is the most relevant to you. The site sends emails to users with the most-shared news, groups that belong to your job focus, and contacts you’re likely to be interested in getting to know.

  20. LINKEDIN IS AWESOME FOR RESEARCH

    Facebook is growing in this respect with better Pages, but LinkedIn still wins the battle of employer research. You find out who works there, who used to work there, whether or not you have any connections within the company, and more. For example, if you recently earned a master’s degree in finance, and are looking for employment with major financial services companies, you can search for employment leads by networking with a company’s current and former employees.

Posted in Apps Development, Computer Softwares, Installation, Other | Leave a Comment »

Setup has failed to validate the Product key on Windows 8.1 Upgrade

Posted by Hemprasad Y. Badgujar on April 7, 2015


 

Setup has failed to validate the Product key on Windows 8.1 Upgrade

While installing or upgrading to Windows 8.1 from your local drive, “Something Happened; Setup has failed to validate the product key” error message may halt your installation. Here’s an easy solution to the problem.

Windows 8.1 Failed to validate product key

This type of problem mostly happens if you are installing Windows 8.1 from your hard drive which is extracted from an ISO file that is downloaded or installing from USB thumb drive without boot. Installing Windows 8.1 from local drive by clicking on setup.exe (without boot) should not make any problem to 8.1 unless you done any wrong.

How to Fix Setup has failed to validate the Product key Problem

Step 1: Download the modified EI.CFG file (1KB) from http://goo.gl/8z8jJR. Both pro and enterprise edition files are included.

Step 2: Now locate the folder “sources” on USB-stick or the folder where you extracted the ISO image (windows ISO extracted files and folders should look like following).

Locate the Folder 'sources'

Step 3: Paste the newly downloaded ei.cfg file in “sources” folder. Replace the old file (you may take a backup of the old file).

Step 4: Done! Now you can install and upgrade to Windows 8.1 by clicking on that blue setup.exe without facing the product key validation error.

Tell us if it worked.

Posted in Computer Softwares, Installation | Tagged: , | 1 Comment »

Build and Use OpenBLAS in Microsoft Visual Studio

Posted by Hemprasad Y. Badgujar on March 27, 2015


Build and Use OpenBLAS in Microsoft Visual Studio

As of OpenBLAS v0.2.10, it is currently only possible on Windows to build OpenBLAS with MinGW. The resulting library can be used in Visual Studio, but it can only be linked dynamically. This configuration has not been thoroughly tested and should be considered experimental.

Incompatible x86 calling conventions

Due to incompatibilities between the calling conventions of MinGW and Visual Studio you will need to make the following modifications ( 32-bit only ):

  1. Use the newer GCC 4.7.0. The older GCC (<4.7.0) has an ABI incompatibility for returning aggregate structures larger than 8 bytes with MSVC.

Build OpenBLAS on Windows OS

  1. Install the MinGW (GCC) compiler suite, either 32-bit (http://www.mingw.org/) or 64-bit (http://mingw-w64.sourceforge.net/). In addition, please install MSYS with MinGW.
  2. Build OpenBLAS in the MSYS shell. Usually, you can just type “make”. OpenBLAS will detect the compiler and CPU automatically.
  3. After the build is complete, OpenBLAS will generate the static library “libopenblas.a” and the shared dll library “libopenblas.dll” in the folder. You can type “make PREFIX=/your/installation/path install” to install the library to a certain location.

**Notice. We suggest using official MingWin or MingWin-w64 compilers. A user reported that s/he met Unhandled exception by other compiler suite.https://groups.google.com/forum/#!topic/openblas-users/me2S4LkE55w

Generate import library (before 0.2.10 version)

  1. First, you will need to have the lib.exe tool in the Visual Studio command prompt.
  2. Open the command prompt and type cd OPENBLAS_TOP_DIR/exports, where OPENBLAS_TOP_DIR is the main folder of your OpenBLAS installation.
  3. For a 32-bit library, type lib /machine:i386 /def:libopenblas.def. For 64-bit, typelib /machine:X64 /def:libopenblas.def.
  4. This will generate the import library “libopenblas.lib” and the export library “libopenblas.exp” in OPENBLAS_TOP_DIR/exports. Although these two files have the same name, they are totally different.

Generate import library (0.2.10 and after version)

  1. OpenBLAS already generated the import library “libopenblas.dll.a” for “libopenblas.dll”.

Use OpenBLAS .dll library in Visual Studio

  1. Copy the import library (before 0.2.10: “OPENBLAS_TOP_DIR/exports/libopenblas.lib”, 0.2.10 and after: “OPENBLAS_TOP_DIR/libopenblas.dll.a”) and .dll library “libopenblas.dll” into the same folder.
  2. Please follow the documentation about using third-party .dll libraries in MS Visual Studio 2008 or 2010. Make sure to link against a library for the correct architecture. For example, you may receive an error such as “The application was unable to start correctly (0xc00007b)” which typically indicates a mismatch between 32/64-bit libraries.

Notice. If you need CBLAS, you should include cblas.h in /your/installation/path/include in Visual Studio. Please read this page.

Limitations

  • Both static and dynamic linking are supported with MinGW. With Visual Studio, however, only dynamic linking is supported and so you should use the import library.
  • Debugging from Visual Studio does not work because MinGW and Visual Studio have incompatible formats for debug information (PDB vs. DWARF/STABS). You should either debug with GDB on the command-line or with a visual frontend, for instanceEclipse or Qt Creator.

Posted in Computer Softwares, Installation, Research Menu | Tagged: , , , , , | Leave a Comment »

build Tesseract 3.03 with Visual Studio 2013

Posted by Hemprasad Y. Badgujar on March 17, 2015


Compiling Tesseract 3.02.02 with Visual C++ 2008 (Express) is covered by the documentation whereas compiling Tesseract 3.03 isn’t covered at all, though.

Unfortunately newer versions of Tesseract also require a new version of Leptonica, a C library for image processing and image analysis applications, which in turn requires new versions of zlib, libpng, libtiff, libjpeg and giflib. Tesseract provides pre-compiled versions of Leptonica, which prevents you from having to collect and set up projects for all of these libraries in Visual Studio, which can be a tedious task.

Yesterday I found a project on GitHub that includes a Visual Studio solution file for all dependencies required to compile Tesseract 3.03: charlesw/tesseract-vs2012. While following the build instructions there, I stumpled over several build errors, which I could easily resolve by removing a definition. The necessary change is in my fork of the repository mentioned above.

This is a write-up of all steps that are required to compile Tesseract 3.03 with Visual Studio 2013.

Prerequisites

  1. Install Git.
  2. Install SVN. There are many versions of SVN. You can, for example, install the binary package from SlickSVN for free.
  3. Install Visual Studio 2013 for Windows Desktop (the Express version will be enough). You don’t need the optional features except for “Microsoft Foundation Classes for C++”.

Building the dependencies

  1. Create a directory where you want to compile Tesseract. In this document, I’ll assume it’s C:\Tesseract-Build\.
  2. Open a CMD prompt and change to that directory.
    cd \Tesseract-Build\
  3. Clone the dependencies repository from GitHub.
    git clone https://github.com/SGGS-IT/tesseract-ocr.git
  4. Open the “VS 2013 Developer Command Prompt”. (It can be found in the Start Menu.)
  5. Change to the newly cloned repository.
    cd \Tesseract-Build\tesseract-vs2012
  6. Build the dependencies
    msbuild build.proj
  7. You can close the “VS 2013 Developer Command Prompt”.

Building Tesseract

  1. Re-open the first command prompt and ensure it’s still in C:\Tesseract-Build\.
  2. Get the latest source from SVN.
    svn checkout http://tesseract-ocr.googlecode.com/svn/trunk/
  3. Change to the newly checked-out repository.
    cd tesseract-ocr
  4. Apply the patch provided in tesseract-vs2013.
    svn patch ..\tesseract-vs2012\vs2013+64bit_support.patch
  5. Copy both directories in C:\Tesseract-Build\tesseract-vs2012\release\ toC:\Tesseract-Build\. Now you should have
    • C:\Tesseract-Build\include\
    • C:\Tesseract-Build\lib\
  6. Open C:\Tesseract-Build\tesseract-ocr\vs2013\tesseract.sln with Visual Studio 2013.
  7. Press F7 on your keyboard. Both libtesseract303 and tesseract should compile without errors.

The Visual Studio solution file contains configurations for dynamic and static compilation as well as debugging and release configurations for both 32-Bit and 64-Bit. Select whichever configuration you need and recompile with F7.

You can find the compiled binaries in C:\Tesseract-Build\tesseract-ocr\vs2013\bin\.

Posted in Computer Softwares, Installation, Mixed, OpenCV, Project Related | Tagged: , , , , | Leave a Comment »

Project Template in Visual Studio

Posted by Hemprasad Y. Badgujar on March 5, 2015


 

 Sample Image - maximum width is 600 pixels

Introduction

This article describes the step by step process of creating project template in Visual Studio 2012 and VSIX installer that deploys the project template. Each step contains an image snapshot that helps the reader to keep focused.

Background

A number of predefined project and project item templates are installed when you install Visual Studio. You can use one of the many project templates to create the basic project container and a preliminary set of items for your application, class, control, or library. You can also use one of the many project item templates to create, for example, a Windows Forms application or a Web Forms page to customize as you develop your application.

You can create custom project templates and project item templates and have these templates appear in the New Project and Add New Item dialog boxes. The article describes the complete process of creating and deploying the project template.

Using the Code

Here, I have taken a very simple example which contains nearly no code but this can be extended as per your needs.

Create Project Template

First of all, create the piece (project or item) that resembles the thing you want to get created started from the template we are going to create.

Then, export the template (we are going to use the exported template as a shortcut to build our Visual Studio template package):

Visual Studio Project Templates

We are creating a project template here.

Fill all the required details:

A zip file should get created:

Creating Visual Studio Package Project

To use VSIX projects, you need to install the Visual Studio 2012 VSSDK.

Download the Visual Studio 2012 SDK.

You should see new project template “Visual Studio Package” after installing SDK.

Select C# as our project template belongs to C#.

Provide details:

Currently, we don’t need unit test project but they are good to have.

In the solution, double-click the manifest, so designer opens.

Fill all the tabs. The most important is Assert. Here you give path of our project template(DummyConsoleApplication.zip).

As a verification step, build the solution, you should see a .vsix being generated after its dependency project:

Installing the Extension

Project template is located under “Visual C#” node.

Uninstalling the Project Template

References

Posted in .Net Platform, C, Computer Languages, Computer Software, Computer Softwares, Computer Vision, CUDA, GPU (CUDA), Installation, OpenMP, PARALLEL | Tagged: , , | Leave a Comment »

System Image Backup in Windows 8.1

Posted by Hemprasad Y. Badgujar on January 11, 2015


There is no traditional backup and restore functionality in Windows 8.1, but there is still a way to create a full image of system drive (the disk/partition where Windows is installed) that can later be restored from Recovery Environment.

Please remember to create Recovery Drive for easy access to Repair your PC options!
You might also want to create a Custom Recovery Image for better Refresh your PC functionality.

Caveats for System Image Backups in Windows 8.1

Clearly, Microsoft wants you to use File History, OneDrive (aka SkyDrive) and maybe even Storage Spaces for storing, syncing and backing up your personal files, and Refresh your PC or Reset your PC for restoring Windows to a working state. Maybe that is why System Image Backup is so difficult to find in Windows 8.1.

Here are a few things you should know about system images in Windows 8.1:

  • You can create only one System Image Backup on a drive: any previous versions will be overwritten.
  • There is no easy way of scheduling image backups, and for the previous reason, it is not really recommended either. You do not want to automatically overwrite a good system image with image of a computer that does not run properly.
  • System Image Backup cannot be used for restoring individual files or folders: restoring the image means overwriting everything on the target drive. File History is the proper solution for backing up and restoring personal data in Windows 8.1.

Using DISM to verify that Windows Component Store is intact

Before you create a full backup, it is strongly recommended to check for corruption in Windows Component Store – there is no point in backing up a broken installation that will probably fail in the near future.

Open elevated Command Prompt: either open Start screen, type cmd, right-click on Command Prompt and select Run as administrator; or if you’ve set to display Command Prompt in Taskbar Navigation settings, use keyboard shortcut WINDOWS KEY+X to bring up Quick Links menu (a list of commands for power users) and click Command Prompt (Admin).
In the black window, type or copy-paste the following command to have DISM (Deployment Imaging and Servicing Management) tool verify the integrity of Component Store: Dism /Online /Cleanup-Image /ScanHealth . Press ENTER key to launch the command.

The check takes up to 15 minutes to complete, and if the result reads “No component store corruption detected”, you have the green light to create the System Image Backup.
If the result reads “The component store is repairable” instead, type Dism /Online /Cleanup-Image /RestoreHealth and press ENTER key to fix the corruption. The process can last up to 15 minutes again and positive result reads: “The restore operation completed successfully. The component store corruption was repaired.” Move on to the System Image Backup creation then.

In case the RestoreHealth command fails no matter what, it is best to perform a non-destructive reinstall of Windows 8.1. This seems to be the only solution to the infamous DISM error 0x800f081f.

Creating a System Image Backup in Windows 8.1

To access the feature, open Search everywhere (keyboard shortcut WINDOWS KEY+Q), type File History and click the result.
Yes, you read it right: “File History”. Smile Also, connect your external hard drive with plenty of available disk space now.
Click the link titled System Image Backup in the bottom left corner of the File History window.
Windows 8.1, File History window. Click 'System Image Backup' in the lower left corner.

First, System Image Backup looks for available DVD-writers and hard drives. While you can use network drives for backing up your PC, it is not recommended because backed up data cannot be securely protected for a network target.
I cannot recommend using DVD-s for backups, either – optical media is vulnerable to scratches that might ruin the whole backup set, so the only usable option here is hard disk drive.

In accordance with common sense, you cannot create a system image on the same physical drive where Windows is installed. You see, if this hard drive goes bad, you would lose both Windows and all backups.

In the Create a system image window, select On a hard disk. The best one might be already selected, but you can change the target drive using the combo box.
I recommend using destination drives that are connected to standard controllers (not SCSI, SAS, RAID and other controllers that Windows cannot automatically recognize or find driver for) or standard USB ports.

If you’ve created a system image on the selected drive before, there will be a line stating “Most recent backup on drive:” beneath the combo box. Here’s the catch: previous system image will be overwritten, so you can really have only one backup at a time on the same drive.
Click Next.
Windows then lists your backup location and size, plus drives/partitions that will be backed up.
Again, if there is a previous system image on the drive where you want to back up your PC, a yellow warning sign with the text “Any existing system images for this machine might be overwritten” appears.
Click Start backup if you’re satisfied with the settings.
Depending on the size of selected drive(s), the backup might take several hours. Click Close after it is complete.

Scheduling System Image Backup in Windows 8.1

While it is not recommended to schedule System Image Backups in Windows 8.1, you might prefer to do so if you have more than one external hard drive dedicated for backups.
In such case, you can manually create one backup on the first drive (for example, drive F:) and leave it untouched forever – this will be your fail-safe backup right after installing and updating Windows and necessary software (you should use File History for backing up your personal files and folders). Then schedule a PowerShell command that creates and updates backup on a different physical drive (for example, drive E:) on weekly basis.

To use this advanced scenario, use keyboard shortcut WINDOWS KEY+Q to open Search everywhere, type schedule and click Schedule tasks.
Right-click Task Scheduler Library and select Create Basic Task from the menu.
In the Create Basic Task Wizard window, type Name for the new task. Description is optional.
Click Next after you’re done.
Set Task Trigger to Weekly and click Next. If programs and apps on your Windows device change rarely, you can select Monthly instead.
Because creating a system image slows your PC down for quite some time, choose a start time when your machine is most probably not in heavy use.
Click Next again.
Leave Start a program selected for Action and click Next.
Type powershell.exe into Program/script field and then copy and paste the following line into Add arguments (optional) field:
wbAdmin start backup -backupTarget:E: -include:C: -allCritical -quiet
Replace drive letter E: in the -backupTarget argument with the appropriate one for your backup destination disk if necessary.
Because Windows 8.1 always assigns drive letter C: to system drive (the one where Windows is installed), changing this one is not needed.
The -allCritical option includes everything (additional partitions/volumes or drives) required to start and run Windows properly in the backup. I guess you all know what -quiet means.
In the final screen of Create Basic Task Wizard, tick the Open the Properties dialog for this task when I click Finish check box and click Finish.
In the Security options section of Task Properties window, select the Run whether user is logged on or not option and tick the Run with highest privileges check box. Then click Change user or Group button next to the When running the task, use the following user account field.
Type system into Enter the object name to select field and click Check Names. The name turns into all capital letters and gets underlined. Click OK.
Back in the Task Properties window, open Settings tab and enable the Run task as soon as possible after a scheduled start is missed option. This ensures that the backup is always created.
Finally, click OK to save the task changes. Make sure that the destination drive is always connected during the scheduled time.

To verify that the backup task runs and finishes properly, open WindowsImageBackup folder on the target drive. There should be a subfolder with your computer’s name – open it and then open another subfolder, Logs, and see if the Backup_error_<date and time>.log file is empty. If it is, the backup finished successfully.
Please note that you might have to use administrative privileges to open the folders for the first time.

Another way is to check backup log in Event Viewer. Use keyboard shortcut WINDOWS KEY+X to open Quick Links menu and click Event Viewer. Alternatively, right-click or tap and hold the Start tip on Taskbar.
Expand Applications and Services Logs, Microsoft, Windows, Backup items and click Operational. You’ll then see the list of events related to backing up your device. Here are some most common backup events in Windows:

  • Event ID 1 – The backup operation has started.
  • Event ID 4 – The backup operation has finished successfully.
  • Event ID 5 – Backup started at <date and time> failed with following error code <number>.
  • Event ID 8 – Backup cancelled.
  • Event ID 14 – The backup operation has completed. This event appears even if backup was cancelled or did not finish successfully.
  • Event ID 20 – Backup started at <date and time> failed as another backup or recovery is in progress.
  • Event ID 50 – Backup failed as required space was not available on the backup target. Free up some disk space on the target drive or increase available disk space on Windows disk.

 

How to restore Windows 8.1 from a System Image Backup

First, you need to get into Windows 8.1 Recovery Environment (WinRE) using Recovery Drive or bootable Windows 8.1 installation DVD. If Windows is running, you can invoke Settings charm (keyboard shortcut WINDOWS KEY+I), click Power and hold down SHIFT key while clickingRestart.
Detailed instructions are included in Repair your computer in Windows 8 and 8.1 tutorial.

Click or tap Troubleshoot in Choose an option screen, then choose Advanced Options in Troubleshoot screen.
 

Next, in Advanced options screen, click or tap System Image Recovery, and choose Windows 8.1.

 

How to use Recovery Environment for refreshing, restoring or resetting Windows 8 and 8.1

First part of this article describes how to get into Windows 8 or 8.1 Recovery Environment (WinRE) and repair smaller problems such as file system corruption and corrupted Boot Configuration Data.

Options to try before Refresh your PC, Reset your PC or restoring backup image in Windows 8 and 8.1
  • Always boot to Safe Mode at least once – this often repairs corrupted file system and essential system files.
  • If Windows is able to boot, use System File Checker and icacls.exe to repair corrupted system files.
  • While Windows is running, use free WhoCrashed for determining BSOD (Blue Screen Of Death) causes.
    Reliability Monitor might also reveal faulty drivers or software.
  • Try a non-destructive reinstall of Windows 8 or 8.1. It certainly takes a lot of time, but it often works much better than Refresh Your PC. This repair method leaves all your files, settings, installed programs and apps intact. It is also about the only option for fixing DISM RestoreHealth failure 0x800f081f.
Step 3 – Refresh your PC

In case Automatic Repair and System Restore did not help and you do not have any system image backups available, you can use the brand new option in Windows 8 and 8.1 – Refresh your PC. This method is pretty close to Non-destructive reinstall of Windows 8 or 8.1, but you will lose all apps and Desktop programs that were not installed from Windows Store unless you have created a Custom Recovery Image.

Please note that you cannot use the Refresh Your PC feature if Windows 8 or 8.1 is installed on a drive with GPT (not MBR) partition table until you force the “UEFI only” boot setting in BIOS/EFI. Windows will not detect GPT partition alignment correctly if BIOS booting is enabled.

All your personal files, documents and most of personalization settings will remain intact, and a list of removed programs will be available on your Desktop. Windows settings and all installed app settings will revert back to defaults to avoid possible conflicts.

Please be aware that even if using a Custom Recovery Image, Desktop programs will lose their custom settings and revert back to defaults.

Those who upgraded from Windows 8 to 8.1 without clean install/removing everything, can encounter a problem where Windows 8, not 8.1 is restored. This is because you need to update Custom Recovery Image after upgrading to Windows 8.1 – the image on Recovery Partition is still Windows 8.

Refresh your PC restores default contents of the following folders on system drive (the one where Windows 8/8.1 is installed):

  • Windows
  • Program Files
  • Program Files (x86)
  • ProgramData
  • Users\<user name>\AppData

In most cases, you must have Windows 8/8.1 installation or recovery media (DVD) available. Media prompt will not appear only if a custom recovery image is available.

Some users report “Unable to refresh your PC. A required drive partition is missing” and “The drive where Windows is installed is locked. Unlock the drive and try again” errors during the refresh process. In most cases, rebuilding Boot Configuration Data helps. This might also resolve the problems that made Windows unable to boot.
A less common cause is that Windows 8 or 8.1 cannot locate a proper driver for the hard drive controller and therefore cannot access partitions. If Windows is able to start, try installing proper chipset drivers (such as Intel or AMD) before refreshing your PC.

You can also launch Refresh your PC while Windows 8 or 8.1 is running – use keyboard shortcut WINDOWS KEY+I to open Settings charm and click Change PC settings.
In Windows 8, open General tab on the left and click Get started in the Refresh your PC without affecting your files section.
In Windows 8.1, open Update & recovery tab on the left, then open Recovery tab and click Get started in the Refresh your PC without affecting your files section.
The following process is nearly identical to the one described below.

To start, click Refresh your PC in Troubleshoot screen. If you have a custom recovery image on some external drive, make sure the drive is connected. If Windows 8 or 8.1 is running in normal mode, not Recovery Environment, you can also verify the custom image is available.
If Refresh your PC does not detect a custom recovery image, or one has not been created, it will use defaults and all installed Desktop programs and non-Windows Store apps will be removed.

An overview of refreshing will appear. Click Next if you are satisfied with the consequences.
If you started this operation some other way, you might have to sign in first.

As usual, you must choose a target operating system. Click the correct Windows 8/8.1 installation in the list. In most cases, there is just one.

If the process asks you to insert your Windows installation or recovery media, insert it and the process will continue automatically.

Windows 8 and 8.1 will remind you that you must have your PC plugged in. Click Refresh to start the process.

The process will take from 15-20 minutes to several hours, depending on the number of installed programs and the speed of hard drive or SSD. It has several stages, such as “Preparing”, “Getting devices ready”, “System” and “Welcome”.

In most cases, this action solves all problems and Windows 8/8.1 is able to boot and run normally.
Windows 8.1 will restore your synced settings and apps after signing in (if you had syncing to OneDrive enabled before refreshing) – this takes some time and your device might be slower than usual during this.
If necessary, reinstall all removed programs after this – the list is available on your Desktop as an HTML document titled “Removed Apps” and it contains links to program downloads.
If you restored a Custom Recovery Image, you must reconfigure all Desktop programs and non-Windows Store apps. Your File History is intact, but you must register the recovery image again.

Step 4 – restore a disk image backup or recover files

Windows 8 does have a traditional backup program that is well hidden under the name Windows 7 File Recovery. If you automated it properly, you can click System Image Recovery in Advanced options screen and follow instructions in Restore a System Image in Windows 7 and 8 article.

Windows 8.1 has the disk imaging backup hidden even better. In case you’ve created System Image Backup, you can restore it here.
If you are using free AOMEI Backupper instead, read this article about restoring disk image using bootable rescue media.

EaseUS Todo Backup Free users should follow the Restore disk image tutorial.

In case you do not have any backups and you have not turned on File History in Windows 8 or 8.1, you can use my Data Recovery CD/USB orPuppy Linux to copy your documents, pictures, videos, music, settings, etc to a flash drive or external hard disk.
After copying is complete, run Step 3 (Refresh your PC, does not affect your documents or personalization settings) or Step 5 (Reset your PC, removes everything and installs a clean copy of Windows), copy your rescued files back to your computer if needed, and do start making regular backups this time.

Step 5 – Reset your PC

Reset your PC is a last resort – you should definitely try restoring a backup image or copy important files to an external drive first. Also, make sure your File History drive is not connected if you have turned the feature on and need to keep your personal files and Libraries.

Resetting means removing all user accounts, settings, personal files, installed apps and Desktop programs and reverting to a clean (default) Windows 8/8.1 installation.

This option is useful if you want to sell, donate or recycle your PC and make sure no one can recover your personal data.

Please note that you cannot use the Reset Your PC feature if Windows 8 or 8.1 is installed on a drive with GPT (not MBR) partition table until you force the “UEFI only” boot setting in BIOS/EFI. Windows will not detect GPT partition alignment correctly if BIOS booting is enabled.

Those who upgraded from Windows 8 to 8.1 without clean install/removing everything, can encounter a problem where Windows 8, not 8.1 is restored. This is because you need to update Custom Recovery Image after upgrading to Windows 8.1 – the image on Recovery Partition is still Windows 8.

You’ll need your Windows 8/8.1 installation or recovery media (DVD) and product key to run Reset your PC.

If you encounter the “Unable to reset your PC. A required drive partition is missing” and “The drive where Windows is installed is locked. Unlock the drive and try again” errors during the reset process, try rebuilding Boot Configuration Data first. This might also resolve the problems that made Windows unable to boot.
A far less common cause is that Windows 8 or 8.1 cannot locate a proper driver for the hard drive controller and therefore cannot access partitions. If Windows is able to start, try installing proper chipset drivers (such as Intel or AMD) before refreshing your PC.

You can also launch Reset your PC while Windows 8/8.1 is running – use keyboard shortcut WINDOWS KEY+I to open Settings charm and clickChange PC settings.
In Windows 8, open General tab on the left and click Get started in the Remove everything and reinstall Windows section.
In Windows 8.1, open Update & recovery tab on the left, then open Recovery tab and click Get started in the Remove everything and reinstall Windows section.
The following process is nearly identical to the one described below.

To reset Windows 8 or 8.1, click Reset your PC in Troubleshoot screen.
An overview of resetting will appear. Click Next if you are satisfied with the consequences.
As usual, you must choose a target operating system. Click the correct Windows 8/8.1 installation in the list. In most cases there is only one, anyway.
If the process asks you to insert your Windows installation or recovery media, insert it and the process will continue automatically.
If your PC has more than one drive (e.g. two internal hard disks), Reset your PC asks whether you want to remove all files from all drives.
Click Only the drive where Windows is installed in case you are repairing your Windows 8 or 8.1installation.
If you’re about to sell, donate or recycle the PC, click All drives instead.
Next, two options for removing files appear:

  • Just remove my files will delete all files normally. This is a quick process and is suggested if you just want to reinstall Windows 8 or 8.1 and continue using this computer.
  • Fully clean the drive will delete all files securely so that recovery programs are not able to restore these. This option is recommended if you are planning to sell, donate or recycle your computer – and it will certainly take from several to many-many hours to complete.

 

A reminder of consequences appears with a suggestion to keep your computer plugged in. To start the process, click Reset.
If you chose the quick reset option, the process will not take long – much less time than refreshing Windows 8 or 8.1. Plan about 10-30 minutes for the process.
In case you chose to fully clean all drives, the process will certainly take at least a few hours.
Just like Refresh your PC, the process has several stages, such as “Preparing”, “Getting devices ready”, “System” and “Welcome”. Please stand by.
Like I warned, you will need Windows product key after Reset your PC is complete. Type it in and click Next. If you do not have one right away, clickSkip instead – but please remember that Windows 8 and 8.1 will work for only the next 30 days without activation.

The process will continue exactly like with brand new PC-s – License terms, Settings, Personalization, User Account, etc.
Windows 8.1 allows restoring your apps and settings from another synced PC (if you had syncing to OneDrive enabled before resetting), or setting it up as a brand new PC. Please note that syncing takes some time and your PC might be slower during that time.

After all this is done, Windows 8/8.1 should run flawlessly.

If you’re not planning to get rid of the device, remember to configure Windows Update, System Restore, File History and backups; reinstall free anti-malware program(s) and other free security apps, such as WOT Safe Surfing Tool and Secunia PSI. Also, do not forget to create a custom recovery image after reinstalling all apps and Desktop programs.

Posted in Computer Software, Computer Softwares, Computing Technology, Free Tools, Installation, Operating Systems, Windows OS | Tagged: , | Leave a Comment »

Step By Step Installing Visual Studio Professional 2012

Posted by Hemprasad Y. Badgujar on January 5, 2015


1. Mount .iso file. Click on “Setup.exe” file. Agree on terms and conditions and click on “Next” button.

2. Select the required features from the list and click “Install” button. It will take around 7.90 GB of space if all features are installed.

3. Setup will create “System Restore Point” before starting the installation process.

4. Once it is done, it will start installation process.

5. Between setup will ask you to restart the system. Click on “Restart” button to restart your system.


6. Setup will resume, once system is restarted.

7. Now installation will take some time. Around 20-30 minutes.

8. Once setup is completed, you can launch Visual studio.

Posted in Computer Languages, Computer Network & Security, Computer Softwares, CUDA, GPU (CUDA), Installation, PARALLEL, Windows OS | Tagged: | 1 Comment »

Running CUDA Code Natively on x86 Processors

Posted by Hemprasad Y. Badgujar on December 20, 2014


1 Try : CUDA Development without GPU

If you want to run the code on your machine but you don’t have a GPU? Or maybe you want to try things out before firing up your AWS instance? Here I show you a way to run the CUDA code without a GPU.

Note: this only works on Linux, maybe there are other alternatives for Mac or Windows.

Ocelot lets you run CUDA programs on NVIDIA GPUs, AMD GPUs and x86-CPUs without recompilation. Here we’ll take advantage of the latter to run our code using our CPU.

Dependencies

You’ll need to install the following packages:

  • C++ Compiler (GCC)
  • Lex Lexer Generator (Flex)
  • YACC Parser Generator (Bison)
  • SCons

And these libraries:

  • boost_system
  • boost_filesystem
  • boost_serialization
  • GLEW (optional for GL interop)
  • GL (for NVIDIA GPU Devices)

With Arch Linux, this should go something like this:

pacman -S gcc flex bison scons boost glew

On Ubuntu it should be similar (sudo apt-get install flex bison g++ scons libboost-all-dev). If you don’t know the name of a package, search for it with ‘apt-cache search package_name’.

You should probably install LLVM too, it’s not mandatory, but I think it runs faster with LLVM.

pacman -S llvm clang

And of course you’ll need to install CUDA and the OpenCL headers. You can do it manually or using your distro’s package manager (for ubuntu I belive the package is called nvidia-cuda-toolkit):

pacman -S cuda libcl opencl-nvidia

One last dependency is Hydrazine. Fetch the source code:

svn checkout http://hydrazine.googlecode.com/svn/trunk/ hydrazine

Or if you’re like me and prefer Git:

git svn clone -s http://hydrazine.googlecode.com/svn/ hydrazine

And install it like this (you might need to install automake if you don’t have it already):

cd hydrazine
libtoolize
aclocal
autoconf
automake --add-missing
./configure
sudo make install

Installation

Now we can finally install Ocelot. This is where it gets a bit messy. Fetch the Ocelot source code:

svn checkout http://gpuocelot.googlecode.com/svn/trunk/ gpuocelot

Or with Git (warning, this will take a while, the whole repo is about 1.9 GB):

git svn clone -s http://gpuocelot.googlecode.com/svn/ gpuocelot

Now go to the ocelot directory:

cd gpuocelot/ocelot

And install Ocelot with:

sudo ./build.py --install

Troubleshooting

Sadly, the last command probably failed. This is how I fixed the problems.

Hydrazine headers not found

You could fix this adding an include flag. I just added a logical link to the hydrazine code we downloaded previously:

ln -s /path/to/hydrazine/hydrazine

Make sure you link to the second hydrazine directory (inside this directory you’ll find directories like implementation and interface). You should do this in the ocelot directory where you’re running the build.py script (gpuocelot/ocelot).

LLVM header file not found

For any error that looks like this:

llvm/Target/TargetData.h: No such file or directory

Just edit the source code and replace it with this header:

llvm/DataLayout.h

The LLVM project moved the file.

LLVM IR folder “missing”

Similarly, files referenced by Ocelot from the “IR” package were moved (LLVM 3.2-5 on Arch Linux). If you get an error about LLVM/IR/LLVMContext.h missing, edit the following files:

ocelot/ir/implementation/ExternalFunctionSet.cpp
ocelot/executive/implementation/LLVMModuleManager.cpp
ocelot/executive/implementation/LLVMState.cpp

and replace the includes at the top of each file for LLVM/IR/LLVMContext.h and LLVM/IR/Module.h with LLVM/LLVMContext.h and LLVM/Module.h, respectively.

PTXLexer errors

The next problem I ran into was:

.release_build/ocelot/ptxgrammar.hpp:351:14:error:'PTXLexer' is not a member of 'parser'

Go ahead, open the ‘.release_build/ocelot/ptxgrammar.hpp’ file and just comment line 355:

/* int yyparse (parser::PTXLexer& lexer, parser::PTXParser::State& state); */

That should fix the error.

boost libraries not found

On up-to-date Arch Linux boxes, it will complain about not finding boost libraries ‘boost_system-mt’, ‘boost_filesystem-mt’, ‘boost_thread-mt’.

I had to edit two files:

  • scripts/build_environment.py
  • SConscript

And just remove the trailing -mt from the library names:

  • boost_system
  • boost_filesystem
  • boost_thread

Finish the installation

After those fixes everything should work.

Whew! That wasn’t fun. Hopefully with the help of this guide it won’t be too painful.

To finish the installation, run:

sudo ldconfig

And you can check the library was installed correctly running:

OcelotConfig -l

It should return -locelot. If it didn’t, check your LD_LIBRARY_PATH. On my machine, Ocelot was installed under /usr/local/lib so I just added this to my LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

Here’s the link to the installation instructions.

Running the code with Ocelot

We’re finally ready enjoy the fruits of our hard work. We need to do two things:

Ocelot configuration file

Add a file called configure.ocelot to your project (in the same directory as our Makefile and student_func.cu files), and copy this:

{
    ocelot: "ocelot",
    trace: {
        database: "traces/database.trace",
        memoryChecker: {
            enabled: false,
            checkInitialization: false
        },
        raceDetector: {
            enabled: false,
            ignoreIrrelevantWrites: false
        },
        debugger: {
            enabled: false,
            kernelFilter: "",
            alwaysAttach: true
        }
    },
    cuda: {
        implementation: "CudaRuntime",
        tracePath: "trace/CudaAPI.trace"
    },
    executive: {
        devices: [llvm],
        preferredISA: nvidia,
        optimizationLevel: full,
        defaultDeviceID: 0,
        asynchronousKernelLaunch: True,
        port: 2011,
        host: "127.0.0.1",
        workerThreadLimit: 8,
        warpSize: 16
    },
    optimizations: {
        subkernelSize: 10000,
    }
}

You can check this guide for more information about these settings.

Compile with the Ocelot library

And lastly, a small change to our Makefile. Append this to the GCC_OPTS:

GCC_OPTS=-O3 -Wall -Wextra -m64 `OcelotConfig -l`

And change the student target so it uses g++ and not nvcc:

student: compare main.o student_func.o Makefile
    g++ -o hw main.o student_func.o -L $(OPENCV_LIBPATH) $(OPENCV_LIBS) $(GCC_OPTS)

I just replaced ‘nvcc’ with ‘g++’ and ‘NVCC_OPTS’ with ‘GCC_OPTS’.

make clean
make

And that’s it!

I forked the github repo and added these changes in case you want to take a look.

I found this guide helpful, it might have some additional details for installing things under ubuntu and/or manually.

Note for debian users

I successfully installed ocelot under debian squeeze, following the above steps, except that I needed to download llvm from upstream, as indicated in the above guide for ubuntu.

Other than that, after fixing some includes as indicated (Replacing ‘TargetData.h’ by ‘IR/DataLayout.h’, or adding ‘/IR/’ to some includes), it just compiled.

To build the student project, I needed to replace -m64 by -m32 to fit my architecture, and to make the other indicated changes.

Here are my makefile diffs:

$ git diff Makefile
diff --git a/HW1/student/Makefile b/HW1/student/Makefile
index b6df3a4..55480af 100755
--- a/HW1/student/Makefile
+++ b/HW1/student/Makefile
@@ -22,7 +22,8 @@ OPENCV_INCLUDEPATH=/usr/include

 OPENCV_LIBS=-lopencv_core -lopencv_imgproc -lopencv_highgui

-CUDA_INCLUDEPATH=/usr/local/cuda-5.0/include
+#CUDA_INCLUDEPATH=/usr/local/cuda-5.0/include
+CUDA_INCLUDEPATH=/usr/local/cuda/include

 ######################################################
 # On Macs the default install locations are below    #
@@ -36,12 +37,12 @@ CUDA_INCLUDEPATH=/usr/local/cuda-5.0/include
 #CUDA_INCLUDEPATH=/usr/local/cuda/include
 #CUDA_LIBPATH=/usr/local/cuda/lib

-NVCC_OPTS=-O3 -arch=sm_20 -Xcompiler -Wall -Xcompiler -Wextra -m64
+NVCC_OPTS=-O3 -arch=sm_20 -Xcompiler -Wall -Xcompiler -Wextra -m32

-GCC_OPTS=-O3 -Wall -Wextra -m64
+GCC_OPTS=-O3 -Wall -Wextra -m32 `OcelotConfig -l` -I /usr/include/i386-linux-gn

 student: compare main.o student_func.o Makefile
-       $(NVCC) -o hw main.o student_func.o -L $(OPENCV_LIBPATH) $(OPENCV_LIBS) 
+       g++ -o hw main.o student_func.o -L $(OPENCV_LIBPATH) $(OPENCV_LIBS) $(GC

 main.o: main.cpp timer.h utils.h HW1.cpp
        g++ -c main.cpp $(GCC_OPTS) -I $(CUDA_INCLUDEPATH) -I $(OPENCV_LIBPATH)
$

I’m using cuda toolkit 4.2.

I don’t know why, but it was necessary to add /usr/lib/gcc/i486-linux-gnu/4.4 to the PATH for nvcc to work:

export PATH=$PATH:/usr/lib/gcc/i486-linux-gnu/4.4

Eclipse CUDA plugin

This is probably for another entry, but I used this guide to integrate CUDA into Eclipse Indigo.

The plugin is University of Bayreuth’s Eclipse Toolchain for CUDA compiler



2 Try :Running CUDA Code Natively on x86 Processors

We  focused on Fermi and the architectural changes that significantly broadened the types of applications that map well to GPGPU computing yet preserve the application performance of software written for previous generations of CUDA-enabled GPUs. This article addresses the mindset that CUDA is a language for only GPU-based applications.

Recent developments allow CUDA programs to transparently compile and run at full speed on x86 architectures. This advance makes CUDA a viable programming model for all application development, just like OpenMP. The PGI CUDA C/C++ compiler for x86 (from the Portland Group Inc.) is the reason for this recent change in mindset. It is the first native CUDA compiler that can transparently create a binary that will run on an x86 processor. No GPU is required. As a result, programmers now have the ability to use a single source tree of CUDA code to reach those customers who own CUDA-enabled GPUs as or who use x86-based systems.

Figure 1 illustrates the options and target platforms that are currently available to build and run CUDA applications. The various products are discussed next.

Figure 1: The various options for compiling and running a CUDA program.

Aside from the new CUDA-x86 compiler, the other products require developer or customer intervention to run CUDA on multiple backends. For example:

  • nvcc: The freely downloadable nvcc compiler from NVIDIA creates both host and device code. With the use of the __device__ and __host__ specifiers, a developer can use C++ Thrust functions to run on both host and CUDA-enabled devices. This x86 pathway is represented by the dotted line in Figure 1, as the programmer must explicitly specify use of the host processor. In addition, developers must explicitly check whether a GPU is present and use this information to select the memory space in which the data will reside (that is, GPU or host). The Thrust API also allows CUDA codes to be transparently compiled to run on different backends. The Thrust documentation shows how to use OpenMP to run a Monte Carlo simulation on x86. Note that Thrust is not optimized to create efficient OpenMP code.
  • gpuocelot provides a dynamic compilation framework to run CUDA binaries on various backends such as x86, AMD GPUs, and an x86-based PTX emulator. The emulator alone is a valuable tool for finding hot spots and bottlenecks in CUDA codes. The gpuocelot website claims that it “allows CUDA programs to be executed on NVIDIA GPUs, AMD GPUs, and x86-CPUs at full speed without recompilation.” I recommend this project even though it is challenging to use. As it matures, Ocelot will provide a pathway for customers to run CUDA binaries on various backends.
  • MCUDA is an academic project that translates CUDA to C. It is not currently maintained, but the papers are interesting reading. A follow-up project (FCUDA) provides a CUDA to FPGA translation capability.
  • SWAN provides a CUDA-to-OpenCL translation capability. The authors note that Swan is “not a drop in replacement for nvcc. Host code needs to have all kernel invocations and CUDA API calls rewritten.” Still, it is an interesting project to bridge the gap between CUDA and OpenCL.

The CUDA-x86 compiler is the first to provide a seamless pathway to create a multi-platform application.

Why It Matters

Using CUDA for all application development may seem like a radical concept to many readers, but in fact, it is the natural extension of the emerging CPU/GPU paradigm of high-speed computing. One of the key benefits of CUDA is that it uses C/C++ and can be adopted easily and it runs on 300+ million GPUs and now all x86 chips. If this still feels like an edgy practice, this video presentation might be helpful.

CUDA works well now at its principal task — massively parallel computation — as demonstrated by the variety and number of projects that achieve 100x or greater performance in the NVIDIA showcase. See Figure 2.

Figure 2: All top 100 CUDA apps attain speedups in excess of 100x.

PGI CUDA-x86: CUDA Programming for Multi-core CPUs

Introduction

The NVIDIA CUDA architecture was developed to enable offloading of compute-intensive kernels to GPUs. Through API function calls and language extensions, CUDA gives developers control over mapping of general-purpose compute kernels to GPUs, and over placement and movement of data between host memory and GPU memory. CUDA is supported on x86 and x64 (64-bit x86) systems running Linux, Windows or MacOS and that include an NVIDIA CUDA-enabled GPU. First introduced in 2007, CUDA is the most popular GPGPU parallel programming model with an estimated user-base of over 100,000 developers worldwide.

Let’s review the hardware around which the CUDA programming model was designed. Figure 1 below shows an abstraction of a multi-core x64+GPU platform focused on computing, with the graphics functionality stripped out. The key to the performance potential of the NVIDIA GPU is the large number of thread processors, up to 512 of them in a Fermi-class GPU. They’re organized into up to 16 multi-processors, each of which has 32 thread processors. Each thread processor has registers along with integer and floating point functional units; the thread processors within a multiprocessor run in SIMD mode. Fermi peak single-precision performance is about 1.4 TFLOPS and peak double-precision is about 550 GFLOPS.

Fermi Block Diagram

Figure 1: NVIDIA Fermi-class GPU Accelerator

The GPU has a large (up to 6GB) high bandwidth long latency device main memory. Each multi-processor has a small 64KB local shared memory that functions as both a hardware data cache and a software-managed data cache, and has a large register file.

The GPU has two levels of parallelism, SIMD within a multiprocessor, and parallel across multiprocessors. In addition, there is another very important level of concurrency: the thread processors support extremely fast multithread context switching to tolerate the long latency to device main memory. If a given thread stalls waiting for a device memory access, it is swapped out and another ready thread is swapped in and starts executing within a few cycles.

What kind of algorithms run well on this architecture?

  • Massive parallelism—is needed to effectively use hundreds of thread processors and provide enough slack parallelism for the fast multi-threading to effectively tolerate device memory latency and maximize device memory bandwidth utilization.
  • Regular parallelism—is needed for GPU hardware and firmware that is optimized for the regular parallelism found in graphics kernels; these correspond roughly to rectangular iteration spaces (think tightly nested loops).
  • Limited synchronization—thread processors within a multi-processor can synchronize quickly enough to enable coordinated vector operations like reductions, but there is virtually no ability to synchronize across multi-processors.
  • Locality—is needed to enable use of the hardware or user-managed data caches to minimize accesses to device memory.

This sounds a lot like a nest of parallel loops. So, NVIDIA defined the CUDA programming model to enable efficient mapping of general-purpose compute-intensive loop nests onto the GPU hardware. Specifically, a 1K x 1K matrix multiply loop that looks as follows on the host:

for (i = 0; i < 1024; ++i)
   for (k = 0; k < 1024; ++k)
      for (j = 0; j < 1024; ++j)
         c[i][j] =+= a[i][k]*b[k][j]; 

can be rewritten in its most basic form in CUDA C as:

cudaMalloc( &ap, memsizeA );
...
cudaMemcpy( ap, a, memsizeA, cudaMemcpyHostToDevice );
...
c_mmul_kernel <<<(64,64),(16,16)>>>(ap, bp, cp, 1024);
cudaMemcpy( c, cp, memsizeC, cudaMemcpyDeviceToHost );
...
	
__global__ void c_mmul_kernel(float* a, float* b, float* c, n)
{
   int i = blockIdx.y*16+threadIdx.y;
   int j = blockIdx.x*16+threadIdx.x;
   for( int k = 0; k < n; ++k )_
      c[n*i+j] += a[n*i+k] * b[n*k+j];
}

The triply-nested matrix multiply loop becomes a single dot-product loop, split out to a self-contained kernel function. The two outer loops are abstracted away in the launch of the kernel on the GPU. Conceptually, the over one million 1024-length dot-products it takes to perform the matrix multiply are all launched simultaneously on the GPU. The CUDA programmer structures fine-grain parallel tasks, in this case dot-product operations, as CUDA threads, organizes the threads into rectangular thread blocks with 32 to 1024 threads each, and organizes the thread-blocks into a rectangular grid. Each thread-block is assigned to a CUDA GPU multi-processor, and the threads within a thread-block are executed by the thread-processors within that multiprocessor.

The programmer also manages the memory hierarchy on the GPU, moving data from the host to device memory, from variables in device memory to variables in shared memory, or to variables that the user intends to be assigned to registers.

PGI CUDA C/C++ for Multi-core x64

The PGI CUDA C/C++ compiler for multi-core x64 platforms will allow developers to compile and optimize CUDA applications to run on x64-based workstations, servers and clusters with or without an NVIDIA GPU accelerator. Is it possible to compile CUDA C efficiently for multi-core processors? CUDA C is simply a parallel programming model and language. While it was designed with the structure required for efficient GPU programming, it also can be compiled for efficient execution on multi-core x64.

Looking at a multicore x64 CPU, we see features very like what we have on the NVIDIA GPU. We have MIMD parallelism across the cores, typically 4 cores but we know there are up to 12 on some chips today and up to 48 on a single motherboard. We have SIMD parallelism in the AVX or SSE instructions. So it’s the same set of features, excepting that CPUs are optimized with deep cache memory hierarchies for memory latency, whereas the GPU is optimized for memory bandwidth. Mapping the CUDA parallelism onto the CPU parallelism seems straightforward from basic principles.

Consider the process the CUDA programmer uses to convert existing serial or parallel programs to CUDA C, as outlined above. Many aspects of this process can simply be reversed by the compiler:

  • Reconstitute parallel/vector loop nests from the CUDA C chevron syntax
  • Where possible, remove or replace programmer-inserted __syncthreads() calls by appropriate mechanisms on the CPU

In effect, the PGI CUDA C/C++ compiler will process CUDA C as a native parallel programming language for mapping to multi-core x64 CPUs. CUDA thread blocks will be mapped to processor cores to effect multi-core execution, and CUDA thread-level parallelism will be mapped to the SSE or AVX SIMD units as shown in Figure 2 below. All existing PGI x64 optimizations for Intel and AMD CPUs will be applied to CUDA C/C++ host code—SIMD/AVX vectorization, inter-procedural analysis and optimizations, auto-parallelization for multi-core, OpenMP extensions support, etc.

Multi-core Mapping

Figure 2: Mapping CUDA to GPUs versus Multi-core CPUs

Initially, PGI CUDA C/C++ will target the CUDA 3.1 runtime API. There are no current plans to implement the CUDA driver API. The definition of warpSize may be changed (probably to 1 in optimizing versions of the compiler); correctly implementing warp-synchronous programming would either require implicit synchronization after each memory access, or would require the compiler to prove that such synchronization is not required. It’s much more natural to require programmers to use the value of warpSize to determine how many threads are running in SIMD mode.

What kind of performance can you expect from CUDA C programs running on multi-core CPUs? There are many determining factors. Typical CUDA C programs perform many explicit operations and optimizations that are not necessary when programming multi-core CPUs using OpenMP or threads-based programming:

  • Explicit movement of data from host main memory to CUDA device memory
  • Data copies from arrays in CUDA device memory to temporary arrays in multi-processor shared memory
  • Synchronization of SIMT thread processors to ensure shared memory coherency
  • Manual unrolling of loops

In many cases, the PGI CUDA C compiler will remove explicit synchronization of the thread processors if it can determine it’s safe to split loops in which synchronization calls occur. Manual unrolling of loops will not typically hurt performance on x64, and may help in some cases. However, explicit movement of data from host memory to “device” copies will still occur, and explicit movement of data from device copies to temporary arrays in shared memory will still occur; these operations are pure overhead on a multi-core processor.

It will be easy to write CUDA programs that run really well on the GPU and don’t run so well on a CPU. We can’t guarantee high performance, if you’ve gone and tightly hand-tuned your kernel code. As with OpenCL, we’re making the language portable, and many programs will port and run well; but there is no guarantee of general performance portability.

PGI Unified Binary for Multi-core x64 and NVIDIA GPUs

In later releases, in addition to multi-core execution, the PGI CUDA C/C++ compiler will support execution of device kernels on NVIDIA CUDA-enabled GPUs. PGI Unified Binary technology will enable developers to build one binary that will use NVIDIA GPUs when present or default to using multi-core x64 if no GPU is present.

PGI Unified Binary

Figure 3: PGI Unified Binary for NVIDIA GPUs and Multi-core CPUs

Conclusion

It’s important to clarify that the PGI CUDA C/C++ compiler for multi-core does not split work between the CPU and GPU; it executes device kernels in multi-core mode on the CPU. Even with the PGI Unified Binary feature, the device kernels will execute either on the GPU or on the multi-core, since the data will have been allocated in one memory or the other. PGI CUDA C/C++ also is not intended to as a replacement for OpenMP or other parallel programming models for CPUs. It is a feature of the PGI compilers that will enable CUDA programs to run on either CPUs or GPUs, and will give developers the option of a uniform manycore parallel programming model for applications where it’s needed and appropriate. It will ensure CUDA C programs are portable to virtually any multi-core x64 processor-based HPC system.

The PGI compiler will implement the NVIDIA CUDA C language and closely track the evolution of CUDA C moving forward. The implementation will proceed in phases:

  • Prototype demonstration at SC10 in New Orleans (November 2010).
  • First production release in Q2 2011 with most CUDA C functionality. This will not be a performance release; it will use multi-core parallelism across threads in a single thread block, in the same way as PGI CUDA Fortran emulation mode, but will not exploit parallelism across thread blocks.
  • Performance release in Q3 2011 leveraging multi-core and SSE/AVX to implement low-overhead native parallel/SIMD execution; this will use a single core to execute all the threads in a single thread block, in SIMD mode where possible, and use multi-core parallelism across the thread blocks.
  • Unification release in Q4 2011 that supports PGI Unified Binary technology to create binaries that use NVIDIA GPU accelerators when present, or run on multi-core CPUs if no GPU is present.

The necessary elements of the NVIDIA CUDA toolkit needed to compile and execute CUDA C/C++ programs (header files, for example) will be bundled with the PGI compiler. Finally, the same optimizations and features implemented for CUDA C/C++ for multi-core will also be supported in CUDA Fortran, offering interoperability and a uniform programming model across both languages.

How It Works

In CUDA-x86, thread blocks are mapped to x86 processor cores. Thread-level parallelism is mapped to SSE (Streaming SIMD Extensions) or AVX SIMD units as shown below. (AVX is an extension of SSE to 256-bit operation). PGI indicates that:

  • The size of a warp (that is, the basic unit of code to be run) will be different than the typical 32 threads per warp for a GPU. For x86 computing, a warp might be the size of the SIMD units on the x86 core (either four or eight threads) or one thread per warp when SIMD execution is not utilized.
  • In many cases, the PGI CUDA C compiler removes explicit synchronization of the thread processors when the compiler can determine it is safe to split loops.
  • CUDA considers the GPU as a separate device from the host processors. CUDA x86 maintains this memory model, which means that data movement between the host and device memory spaces still consumes application runtime. As shown in the device bandwidth SDK example below, a modern Xeon processor can transfer data to a CUDA-x86 “device” at about 4GB/sec. All CUDA x86 pointers reside in the x86 memory space, so programmers can use conditional compilation to directly access memory without requiring data transfers when running on multicore processors.

Trying Out the Compiler

The PGI installation process is fairly straightforward:

  1. Register and download the latest version from PGI
  2. Extract the tarfile at the location of your choice and follow the instructions in INSTALL.txt.
    • Under Linux, this basically requires running the file ./install as superuser and answering a few straight-forward questions.
    • Note that you should answer “yes” to the installation of CUDA even if you have a GPU version of CUDA already installed on your system. The PGI x86 version will not conflict with the GPU version. Otherwise, the PGI compiler will not understand files with the .cu file extension.
  3. Create the license.dat file.

At this point, you have a 15-day license for the PGI compilers.

Setup the environment to build with the PGI tools as discussed in the installation guide. Following are the commands for bash under Linux:

1
2
3
4
PGI=/opt/pgi; export PGI
MANPATH=$MANPATH:$PGI/linux86-64/11.5/man; export MANPATH
LM_LICENSE_FILE=$PGI/license.dat; export LM_LICENSE_FILE
PATH=$PGI/linux86-64/11.5/bin:$PATH; export PATH

Copy the PGI NVIDIA SDK samples to a convenient location and build them:

1
2
3
cp –r /opt/pgi/linux86-64/2011/cuda/cudaX86SDK  .
cd cudaX86SDK ;
make

This is the output of deviceQuery on an Intel Xeon e5560 processor:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
CUDA Device Query (Runtime API) version (CUDART static linking)
There is 1 device supporting CUDA
Device 0: "DEVICE EMULATION MODE"
  CUDA Driver Version:                           99.99
  CUDA Runtime Version:                          99.99
  CUDA Capability Major revision number:         9998
  CUDA Capability Minor revision number:         9998
  Total amount of global memory:                 128000000 bytes
  Number of multiprocessors:                     1
  Number of cores:                               0
  Total amount of constant memory:               1021585952 bytes
  Total amount of shared memory per block:       1021586048 bytes
  Total number of registers available per block: 1021585904
  Warp size:                                     1
  Maximum number of threads per block:           1021585920
  Maximum sizes of each dimension of a block:    32767 x 2 x 0
  Maximum sizes of each dimension of a grid:     1021586032 x 32767 x 1021586048
  Maximum memory pitch:                          4206313 bytes
  Texture alignment:                             1021585952 bytes
  Clock rate:                                    0.00 GHz
  Concurrent copy and execution:                 Yes
  Run time limit on kernels:                     Yes
  Integrated:                                    No
  Support host page-locked memory mapping:       Yes
  Compute mode:                                  Unknown
  Concurrent kernel execution:                   Yes
  Device has ECC support enabled:                Yes
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 99.99, CUDA Runtime Version = 99.99, NumDevs = 1, Device = DEVICE EMULATION MODE
PASSED
Press <Enter> to Quit...
-----------------------------------------------------------

The output of bandwidthTest shows that device transfers work as expected:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Running on...
 Device 0: DEVICE EMULATION MODE
 Quick Mode
 Host to Device Bandwidth, 1 Device(s), Paged memory
   Transfer Size (Bytes)    Bandwidth(MB/s)
   33554432         4152.5
 Device to Host Bandwidth, 1 Device(s), Paged memory
   Transfer Size (Bytes)    Bandwidth(MB/s)
   33554432         4257.0
 Device to Device Bandwidth, 1 Device(s)
   Transfer Size (Bytes)    Bandwidth(MB/s)
   33554432         8459.2
[bandwidthTest] - Test results:
PASSED
Press <Enter> to Quit...
-----------------------------------------------------------

As with NVIDIA’s nvcc compiler, it is easy to use the PGI pgCC compiler to build an executable from a CUDA source file. As an example, copy the arrayReversal_multiblock_fast.cu code from Part 3 of this series. To compile and run it under Linux, type:

1
2
3
pgCC arrayReversal_multiblock_fast.cu
./a.out
Correct!

Posted in Computer Network & Security, Computer Softwares, Computing Technology, CUDA, GPU (CUDA), GPU Accelareted, PARALLEL | Tagged: | Leave a Comment »

 
Extracts from a Personal Diary

dedicated to the life of a silent girl who eventually learnt to open up

Num3ri v 2.0

I miei numeri - seconda versione

ThuyDX

Just another WordPress.com site

Abraham Zamudio [Matematico]

Matematica Aplicada, Linux ,Programacion Cientifica , HIgh Performance COmputing, APrendizaje Automatico

josephdung

thoughts...

Tech_Raj

A great WordPress.com site

Travel tips

Travel tips

Experience the real life.....!!!

Shurwaat achi honi chahiye ...

Ronzii's Blog

Just your average geek's blog

Chetan Solanki

Helpful to u, if u need it.....

ScreenCrush

Explorer of Research #HEMBAD

managedCUDA

Explorer of Research #HEMBAD

siddheshsathe

A great WordPress.com site

Ari's

This is My Space so Dont Mess With IT !!

Business India 2.0

All about Business Travel 2.0 ideas,technology,ventures and the capital making its happen