Compilers:PGI: Difference between revisions

From OACISS Systems Wiki
Jump to navigation Jump to search
No edit summary
 
(One intermediate revision by one other user not shown)
Line 6: Line 6:


== Installing ==
== Installing ==
Packages are provided as a tarball containing a number of files, and an installer script.


Here's a sample of the installation proceedure from version 6.2-3 with the tarball in the current directory:
If installed on a NFS share, the compilers will work fine on systems of the same general OS level as the host they were installed on - RHEL5 to another RHEL5 host, for example. If switching between major releases (say installing on RHEL5, and then running on RHEL4) you must create a local object cache for each off-level host:
 
mkdir pgi-632
cd pgi-623
tar -zxf ../pgilinux86-623.tar.gz
./install
 
<pre>
NOTICE: PLEASE READ THIS DOCUMENT CAREFULLY BEFORE DOWNLOADING, COPYING
OR USING THE SOFTWARE.  THIS END-USER LICENSE AGREEMENT ("ELA") IS A
LEGAL AGREEMENT BETWEEN YOU, THE LICENSEE (A SINGLE PERSON, INSTITUTION,
OR LEGAL ENTITY), AND STMICROELECTRONICS, INC.  A DELAWARE CORPORATION
WITH ITS PRINCIPAL PLACE OF BUSINESS AT 1310 ELECTRONICS DRIVE, CARROLTON,
TX 75006 ("ST") FOR THE SOFTWARE YOU RECEIVE WITH THIS LICENSE, ASSOCIATED
MEDIA, PRINTED MATERIAL, ELECTRONIC DOCUMENTATION OR ANY PORTION THEREOF
("SOFTWARE").  ST IS WILLING TO LICENSE THE SOFTWARE TO YOU ONLY UPON THE
CONDITION THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THIS ELA.  PLEASE
READ THE ELA CAREFULLY.  BY DOWNLOADING OR INSTALLING THIS SOFTWARE, YOU
ACCEPT THE TERMS OF THE AGREEMENT. INDICATE ACCEPTANCE BY SELECTING THE
"ACCEPT" BUTTON AT THE BOTTOM OF THE AGREEMENT. IF YOU ARE NOT WILLING
TO BE BOUND BY ALL THE TERMS, SELECT THE "DECLINE" BUTTON AT THE BOTTOM
OF THE AGREEMENT AND THE DOWNLOAD OR INSTALL PROCESS WILL NOT CONTINUE.
 
"Target System" shall mean a computer system running a specific operating
system on which the Software is designed to run and for which portions of
the Software and subsequent components in the compilation process are
intended to produce an executable image.
 
1- Ownership. The Software distributed and licensed to you as the
licensee ("You") hereunder, including, if and when provided, any updates
furnished to you for free or for additional fees is proprietary to ST or
its licensor (ST and licensors hereafter referred to as "Licensor").
Licensor retains title to and ownership of the Software, including the
copy provided herein, and reserves all rights not expressly granted in
this Agreement. You assume responsibility for the selection of the
Software to achieve your intended results, and for the installation,
use and results obtained from the Software.
 
2- Granting of License.
2A.  Except as set forth in Section 3 below, under the terms and
conditions of this ELA You are hereby granted a limited, revocable,
nontransferable and nonexclusive license, without the right to sublicense,
to use the Software subject to the restrictions and other terms within.
That use must be (i) only by You, (ii) only on Target Systems for which
the corresponding fee has been paid, (iii) only on the network(s) and
only by the number of users for which the corresponding fee has been
paid, (iv) only to target no more than the maximum number of CPUs, or
the maximum number of processes, or which the corresponding fee has
been paid.  Any other use of the Software is strictly prohibited.
2B.  You may distribute an end-user application ("End-User Application")
that you build with the Software, including the run-time libraries
("Run-Time Libraries") included with the Software that are bound into
your application by the linker.  You may also distribute separate
dynamically-linked Run-Time Libraries required during the execution of
your End-User Application, provided that your application adds significant
and primary functionality to the Run-Time Libraries and You abide by the
following restrictions: 1) You do not to use the "PGI," "ST,"
"STMicroelectronics" name, logo, or trademarks in marketing the End-User
Application, 2) You include a valid copyright on the End-User Application,
 
Do you accept these terms? [accept,decline]
</pre>
 
accept
 
<pre>
This release of PGI software includes the ACML, which is a tuned
math library designed for high performance on AMD64 machines,
including Opteron(TM) and Athlon(TM) 64, and includes both 32-bit
and 64-bit library versions.
 
More information about the ACML can be found at the ACML web site:
http://www.developwithamd.com/acml
 
Install the ACML? [y/n]
</pre>
 
n
 
<pre>
This script installs PGI Workstation products for the Linux operating
systems.
 
Please note that all Trademarks and Marks are the properties of
their respective owners.
 
 
Please specify the directory path under which the software will be
installed.  The default directory is /opt/pgi, but you may
install anywhere you wish, assuming you have permission to do so.
 
Installation directory? [/opt/pgi]
 
 
Note: created directory /opt/pgi
 
Installing software into /opt/pgi (this may take some time).
##########################
 
 
If you don't already have permanent keys for this product/release, a
fifteen-day evaluation license can be created now.
 
Create an evaluation license? [y/n]
</pre>
 
n


<pre>
<pre>
Do you want the files in the install directory to be read-only? [y,n]
mkdir -p /usr/pgi/8.0-2/share_objects
</pre>
 
n
 
<pre>
Installation complete.
 
If you purchased a software subscription, please note that the ST
support services to you are limited to the terms described in the
file /opt/pgi/SUBSCRIPTION_SERVICE.  A copy of this file
can be found at http://www.pgroup.com/support/SUBSCRIPTION_SERVICE.
 
Please check the FAQ at http://www.pgroup.com/support/faq.htm for a
current listing of customer support concerns, including installation,
use of PGI software, and other questions or problems.
 
This product uses the STLport Standard Template Library for ANSI C++.
The STLport license can be found at http://www.stlport.com/doc/license.html.
</pre>
 
== Licensing ==
 
Licenses are generated on The Portland Group's website at the URL listed above. Copy the license contents, and paste them into license.dat in the root of the installation directory - in this case, '''/opt/pgi'''
 
'''Note:''' This is the normal proceedure. Unfortunately Matlab also runs a flexlm instance on the same port. See the section below for instructions on how to resolve this'''
 
 
=== Normal FLEXlm ===
Copy the provided FlexLM license manager init script into /etc/init.d, change the paths to match our installation, add it to the proper runlevels, and start it:
<pre>
cp /opt/pgi/linux86/6.2/bin/lmgrd.rc /etc/init.d/pgiflexlm
sed -i "s'/usr/pgi'/opt/pgi'" /etc/init.d/pgiflexlm
chkconfig --add pgiflexlm
/etc/init.d/pgiflexlm start
</pre>
 
==== FlexLM Log File ====
T=he PGI FlexLM license manager writes to a log file at '''/opt/pgi/flexlm.log'''. After the first install, or when making changes to the configuration, you might want to check the log file to make sure everything is running OK.
 
A normal startup/operation should look like this:
<pre>
11:38:42 (lmgrd) FLEXnet Licensing (v10.1.3) started on neuronic.nic.uoregon.edu (linux) (10/2/2006)
11:38:42 (lmgrd) Copyright (c) 1988-2004 by Macrovision Corporation. All rights reserved.
11:38:42 (lmgrd) US Patents 5,390,297 and 5,671,412.
11:38:42 (lmgrd) World Wide Web:  http://www.macrovision.com
11:38:42 (lmgrd) License file(s): /opt/pgi//license.dat
11:38:42 (lmgrd) lmgrd tcp-port 27000
11:38:42 (lmgrd) Starting vendor daemons ...
11:38:42 (lmgrd) Started pgroupd (internet tcp_port 48870 pid 26376)
11:38:42 (pgroupd) FLEXnet Licensing version 10.1.3
11:38:42 (pgroupd) Server started on neuronic.nic.uoregon.edu for:      pghpf-linux86
11:38:42 (pgroupd) pgf90-linux86        pgf77-linux86  pgcc-linux86
11:38:42 (pgroupd) pgcpp-linux86        pgprof          pgdbg
11:38:42 (pgroupd) pgdbg-gui
11:38:42 (lmgrd) pgroupd using TCP-port 48870
11:39:55 (pgroupd) OUT: "pgcc-linux86" brandond@neuronic.nic.uoregon.edu
11:40:01 (pgroupd) IN: "pgcc-linux86" brandond@neuronic.nic.uoregon.edu
11:40:03 (pgroupd) OUT: "pgcc-linux86" brandond@neuronic.nic.uoregon.edu
11:40:05 (pgroupd) IN: "pgcc-linux86" brandond@neuronic.nic.uoregon.edu
</pre>
 
 
=== Shared FLEXlm ===
I created '''/etc/combined-license.dat''', and placed in it the contents of the Matlab and PGI license files. I then replaced the normal PGI and Matlab license files with symlinks to this file.
 
I did have to make a few changes:
* Leave only one of the SERVER lines. They should match anyways, but only one can be present.
* Specify full paths to secondary license manager binaries on DAEMON lines<BR> The Matlab DAEMON line is fully qualified by default, but I had to change the pgroupd line to:<br>
DAEMON pgroupd /opt/pgi/linux86/6.2/bin/pgroupd
 
==== FlexLM Log File ====
In this case, the log output will be in the same place as the normal Matlab license manager output: ''/var/tmp/lm_TMW.log''
 
== Environment ==
The PGI compilers require a number of environment variables to be set for proper operation. profile.d scripts take care of this:
 
'''/etc/profile.d/pgivars.csh'''
<pre>
#! /bin/tcsh
 
PGI=/opt/pgi/
PGI_INST=$PGI/linux86/6.2/
 
if !($?PATH) then
    setenv PATH $PGI_INST/bin
else
    setenv PATH $PGI_INST/bin:$PATH
endif
 
if !($?LD_LIBRARY_PATH) then
    setenv LD_LIBRARY_PATH $PGI_INST/lib
else
    setenv LD_LIBRARY_PATH $PGI_INST/lib:$LD_LIBRARY_PATH
endif
 
if !($?MANPATH) then
    setenv MANPATH $PGI_INST/man:`man -w`
else
    setenv MANPATH $PGI_INST/man:$MANPATH
endif
 
if !($?LM_LICENSE_FILE) then
    setenv LM_LICENSE_FILE $PGI/license.dat
else
    setenv LM_LICENSE_FILE $PGI/license.dat:$LM_LICENSE_FILE
endif
</pre>
 
'''/etc/profile.d/pgivars.sh'''
<pre>
#! /bin/sh
 
PGI=/opt/pgi/
PGI_INST=${PGI}/linux86/6.2/
 
if [ -z "${PATH}" ]
then
    PATH="${PGI_INST}/bin"; export PATH
else
    PATH="${PGI_INST}/bin:$PATH"; export PATH
fi
 
if [ -z "${LD_LIBRARY_PATH}" ]
then
    LD_LIBRARY_PATH="${PGI_INST}/lib"; export LD_LIBRARY_PATH
else
    LD_LIBRARY_PATH="${PGI_INST}/lib:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH
fi
 
if [ -z "${MANPATH}" ]
then
    MANPATH="${PGI_INST}/man":$(man -w); export MANPATH
else
    MANPATH="${PGI_INST}/man:${MANPATH}"; export MANPATH
fi


For 32-bit system only:
    makelocalrc -x /usr/local/packages/pgi/pgi-8.0-2//linux86/8.0-2 -net /usr/pgi/8.0-2/share_objects
For 64-bit system with 32-bit gcc libraries:
    makelocalrc -x /usr/local/packages/pgi/pgi-8.0-2//linux86/8.0-2 -net /usr/pgi/8.0-2/share_objects
    makelocalrc -x /usr/local/packages/pgi/pgi-8.0-2//linux86-64/8.0-2 -net /usr/pgi/8.0-2/share_objects


if [ -z "${LM_LICENSE_FILE}" ]
then
        LM_LICENSE_FILE="${PGI}/license.dat"; export LM_LICENSE_FILE
else
        LM_LICENSE_FILE="${LM_LICENSE_FILE}:${PGI}/license.dat"; export LM_LICENSE_FILE
fi
</pre>
</pre>




[[Category:Compilers]]
[[Category:Compilers]]

Latest revision as of 00:40, 16 January 2009

The Portland Group provides optimizing parallel Fortran, C and C++ compilers for 32-bit x86 and 64-bit x64 processor-based Linux and Windows workstations, servers and clusters.

Home Page

https://www.pgroup.com/webuser/login.php


Installing

If installed on a NFS share, the compilers will work fine on systems of the same general OS level as the host they were installed on - RHEL5 to another RHEL5 host, for example. If switching between major releases (say installing on RHEL5, and then running on RHEL4) you must create a local object cache for each off-level host:

mkdir -p /usr/pgi/8.0-2/share_objects

For 32-bit system only:
    makelocalrc -x /usr/local/packages/pgi/pgi-8.0-2//linux86/8.0-2 -net /usr/pgi/8.0-2/share_objects
 
For 64-bit system with 32-bit gcc libraries:
    makelocalrc -x /usr/local/packages/pgi/pgi-8.0-2//linux86/8.0-2 -net /usr/pgi/8.0-2/share_objects
    makelocalrc -x /usr/local/packages/pgi/pgi-8.0-2//linux86-64/8.0-2 -net /usr/pgi/8.0-2/share_objects