Porting ANSYS Software package to the Grid

Introduction

The work performed to implement a complex engineering simulation software usecase on distributed systems making use of the IGI web portal is here presented and discussed. The work has been carried out within a collaboration with the User Support Unit of the Italian Grid Initiative (IGI) and the INFN-Legnaro National Laboratories (INFN-LNL).

Ported Sw: ANSYS

Web interface

A web interface to run the simulation exploiting the production Grid services was provided through a dedicated portlet of the IGI Portal which is a powerful and easy to use gateway to distributed computing and storage resources. The web GUI was built in strong partnership with the user community interested in porting the application to gather their requirements

Web interface is reachable here: IGI Portal (user has to belong to the ANSYS group of the GRIDIT VO to access the customized interface).

Main features

In a typical usecase the user provides the initial input files and configuration parameters and waits for the results until the calculation is terminated. This process may take several hours, even days using the resources available to run this application. As the granted amount of cpu time is limited on Grid sites, special care was taken in handling the checkpointing of the calculation. Another crucial aspect of such long simulations is the evolution's audit of the calculations at runtime, so a facility that exploits Grid Storage Elements was created to make temporary files and partial output available for inspection at runtime. The present strategy enable the user to check the consistency of the output at runtime, evaluating possible strategies aimed at saving time, computing resources and at avoiding waste of license usage.

The bash compliant wrappers

The web interfae operates in collaboration with a a set of bash compliant wrappers that operate at WN level and are able to set the computational environment and monitor the application's execution.

ansys1srm_restart5.sh

Executable (successively called “the script”) in bash language able to control the ansys execution in the WN. The script is used for the first execution or resubmission after hang-up. Three variables come directly from the portal and are: output - specify the outputname userfolder - specify the user-folder used to get and put outputs url - specify the file to download in case of resubmission after hang-up

Action Query the PBS_NODEFILE variable to get the default walltime set for the queue

Action Define the binary and its path, the SE and the clientSRM command; set “rstauto” file value to FALSE by default

Function USERFOLDER Check if userfolder exists via clientSRM, if not create them. 4 retrying in creating the userfolder directory.

Function PREPARETOPUT Start the PreparetoPut function using the clientSRM functionalities to store a rewritable log file in the SE (file lifetime 24 hours)

Function PREPAREINPUT Prepare the input file needed for the run depending on the status (fist run or resubmission after hang-up) set by the content of $url variable

Function RUNNINGAPP Start the application, permit it to run for a predefined amount of CPU time, then kill it. The function has a check procedure enabled: at intervals of 1 hour the function control the status of the application, upload the log file to the SE by using the “check logs” function and upload the application’s CPU running time.

Function CHECKLOGS Check logs upload the log file to the SE by using the globus-url-copy command (4 retrying).

Function PREPAREOUTPUT Prepare output remove output_oldest file, if exists in the SE; move the output_last file to output_oldest in the SE; tar the output in the localhost and copy it as output_last in the SE (all the comands are performed by using the clientSRM functionalities; file lifetime 7 days).

Action Set the “rstauto” file content to FALSE or TRUE depending on the match of some variables used as control variables. The fiel will be sent to the portal for further submission evaluation.

Action Calling the described functions

ansys2srm_restart6.sh

Executable (successively called “the script”) in bash language able to control the ansys execution in the WN. The script is used for the first execution or resubmission after hang-up. Three variables come directly from the portal and are: output - specify the outputname userfolder - specify the user-folder used to get and put outputs url - specify the file to download in case of resubmission after hang-up

Action Query the PBS_NODEFILE variable to get the default walltime set for the queue

Action Define the binary and its path, the SE and the clientSRM command; set “rstauto” file value to FALSE by default

Function USERFOLDER Check if userfolder exists via clientSRM, if not the calculation is aborted.

Function PREPARETOPUT Start the PreparetoPut function using the clientSRM functionalities to store a rewritable log file in the SE (file lifetime 24 hours)

Function PREPAREINPUT Prepare the input file needed for the run by transferring the remote file stored in the SE and defined by the $url variable

Function RUNNINGAPP Start the application, permit it to run for a predefined amount of CPU time, then kill it. The function has a check procedure enabled: at intervals of 1 hour the function control the status of the application, upload the log file to the SE by using the “check logs” function and upload the application’s CPU running time.

Function CHECKLOGS Check logs upload the log file to the SE by using the globus-url-copy command (4 retrying).

Function PREPAREOUTPUT Prepare output remove output_oldest file, if exists in the SE; move the output_last file to output_oldest in the SE; tar the output in the localhost and copy it as output_last in the SE (all the comands are performed by using the clientSRM functionalities; file lifetime 7 days).

Action Set the “rstauto” file content to FALSE or TRUE depending on the match of some variables used as control variables. The fiel will be sent to the portal for further submission evaluation.

Action Calling the described functions

Installation&Configuration

ANSYS is an engineering simulation software (computer-aided engineering, or CAE) that offers a comprehensive range of engineering simulation solution sets providing access to virtually any field of engineering simulation that a design process requires. The next pages describe the procedure used for the installation and configuration. ANSYS version 13 has been downloaded from the website http://www.ansys.com/ after personal registration. ANSYS can be installed via GUI (recommended) or CLI. We describe both the procedires. No Server License Manager installation needed for INFN.

GUI (recommended)

1- Copy the file (ansys130_linx64_dvd.iso in our case) in the machine designed for the installation

2-

 #ssh –X < hostname > 
where < hostname > is the machine where ANSYS will be installed and configured. In this way the display export is enabled.

3- Mount the iso file (repeat if the iso files are more than one)

 #mkdir /mnt/iso 
 #mount -o loop -t iso9660 ansys130_linx64_dvd.iso /mnt/iso 
Additionally the iso files can be merged.

4- execute the installer and follow the instructions on the screen (the default option can be maintained)

 # ./INSTALL -debug -install_dir < ANSYS_DIR_PATH > 

Suggested value: ANSYS_DIR_PATH=/opt/exp_soft/gridit/ansys_inc

--Error1:

 Error:  The DISPLAY environment variable is not set. 
In order to run the GUI version of the installation, 
this must be set correctly. 
If you wish to use the silent install, please use the –silent 
install option. Please see documentation for usage instructions.

--Solution1: Set the DISPLAY variable as follow in the local_host

 DISPLAY=< DESTINATION_HOST >:0.0; export DISPLAY 

--Error2:

 Error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory 

--Solution2: Install libXext.so.6 32 bit and update LD_LIBRARY_PATH variable

5- Pro/ENGINEER window tick the boxes “Skip this step…” Do the same action for the Unigraphics NX (next window)

6- License Server Machine During the Installation the installer will ask you to set the license server(s) When requested add the following Hostname#1: ansys.infn.it Hostname#2: ansys2.infn.it Hostname#3: ansys3.infn.it

7- Probaly ANSYS will terminate with an error. Look at the file < ANSYS_DIR_PATH >/install.err If the error is something like the following, it is armless.

>>>--------------------------------------->
ANSYS installation: Mon Oct 1 10:19:57 2012
Revision: 13.0
    ERROR: /root/ansys_test/v130/aisol/.workbench  -cmd /root/ansys_test/v130/aisol/mw/bin-amd64_linux_optimized/regsvr32 -c -nodisplay /root/ansys_test/v130/aisol/dll/linx64/libans.cadint.pluginfemcom.so failed
>>>--------------------------------------->

CLI

1- Copy the file (ansys130_linx64_dvd.iso in our case) in the machine designed for the installation

2-

 #ssh < hostname > 
where < hostname > is the machine where ANSYS will be installed and configured.

3- Mount the iso file (repeat if the iso files are more than one)

 #mkdir /mnt/iso 
 #mount -o loop -t iso9660 ansys130_linx64_dvd.iso /mnt/iso 
NOTE: Merge the content if the iso files are more than one.

4- Install ANSYS

 # ./INSTALL -silent -debug ./INSTALL -silent -debug -licserverinfo 2325:1055:ansys.infn.it,ansys2.infn.it,ansys3.infn.it -install_dir < ANSYS_DIR_PATH > 

Suggested ANSYS_DIR_PATH=/opt/exp_soft/gridit/ansys_inc

--Error1: Error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory

--Solution1: Install libXext.so.6 32 bit and update LD_LIBRARY_PATH variable

4-Probaly ANSYS will terminate with an error. Look at the file < ANSYS_DIR_PATH >/install.err If the error is something like the following, it is armless.

>>>--------------------------------------->
ANSYS installation: Mon Oct 1 10:19:57 2012
Revision: 13.0
    ERROR: /root/ansys_test/v130/aisol/.workbench  -cmd /root/ansys_test/v130/aisol/mw/bin-amd64_linux_optimized/regsvr32 -c -nodisplay /root/ansys_test/v130/aisol/dll/linx64/libans.cadint.pluginfemcom.so failed
>>>--------------------------------------->

-- DanieleCesini - 2011-12-16 -- AlessandroCostantini - 2012-10-02

Edit | Attach | PDF | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | More topic actions
Topic revision: r4 - 2012-10-02 - AlessandroCostantini
 
This site is powered by the TWiki collaboration platformCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback