Installation

PPM core is installed in 3 simple steps:

 

Step 1: Configuring PPM core

 

Run the ./configure script to allow the build system to determine the correct options to compile PPM core.

It is very important to give `configure` the correct settings to make sure PPM core is compiled correctly. To find out which settings are supported type

 

 

$ ./configure --help

 

Following options are especially important:

  • --enable-mpi: If you will be running PPM clients on a parallel environment (a cluster) using MPI, you must specify which MPI implementation you are using. If your system is properly configured then this should be enough information for PPM core build system to find the MPI libraries and compiler wrappers needed. If this goes wrong, you may ommit this option and set compiler wrapper and libraries in `FC` and `LDFLAGS` respectively.
  • --enable-linux: Set this if you're compiling/running on a Linux system
  • --prefix: If you like to install PPM and the target directory is not the system's standard directory (`/usr/`) then you have to define this directory here. You must provide the full path. It is not necessary to install PPM. Building it and leaving it in the compilation directory is sufficient. If you provide a directory here it must already exist - it will not be created by the build system.
  • FC etc.: If you wish to not use MPI or you have to specify exactly which compiler executable should be used, then you can use this flag to set your compiler.
  • LDFLAGS: If metis was not installed in one of the system's standard library directories (e.g. `/usr/lib`) you must specify the directory to the libmetis.a file here.

 

Here two examples on how you could run the configure command

 

./configure on Linux cluster using OpenMPI (and intel compilers, wrapped)

 

$ ./configure --enable-mpi=openmpi LDFLAGS=-L../../metis/lib --enable-linux

 

./configure on Mac OS X workstation with the MacPorts gcc compilers

 

$ ./configure FC=gfortran-mp-4.4 LDFLAGS=-L/Users/omar/sw/metis/gcc/lib

 

./configure on a computer with OpenMPI installed in a non-standard location

 

$ ./configure --enable-mpi=openmpi FC=/opt/openmpi/1.5/bin/mpif90 LDFLAGS=-L/Users/omar/sw/metis/gcc/lib


 

(The CC and CXX flags are not needed)

 

Step 2: Compiling PPM core

 

If the configure process finished successfully you should see on your screen a message that the Makefile has been generated (and you can now find this Makefile in this directory).

Now you can simply run make to compile PPM core:

 

$ make

 

If you encounter problems in the compilation process (compile errors) please, first check if you have set everything correctly in your environment. If the error persists, please send us a bug-report detailing the previous steps you have performed. Also, please include the config.log file and the output of export. Finally, if yu are using MPI, please include which MPI library you are using.

 

Step 3: Installing PPM core (optional)

 

If you wish to install PPM core you can now use the `make install` command to do so:

 

$ make install

 

If the target directory is part of the system, you will most probably get a message that you have insufficient rights. If you have a root account you can use in this case the sudo command to override this security setting.

 

$ sudo make install

 

Your PPM core distribution is installed.

 

Compiling PPM client code against PPM core

 

When compiling your PPM client code you need to first include the PPM core modules:

  • in include/ relative to this directory. Check which compiler flag needs to be used to include Fortran module directories. and link against libppm.a:
  • in lib/ relative to this directory. Add -L[path to lib] -lppm to the linking command of your compilation process.

 

Enjoy the PPM experience!

 

Profile Information

Application afterLoad: 0.000 seconds, 0.28 MB
Application afterInitialise: 0.011 seconds, 0.93 MB
Application afterRoute: 0.014 seconds, 1.23 MB
Application afterDispatch: 0.022 seconds, 1.85 MB
Application afterRender: 0.031 seconds, 2.02 MB

Memory Usage

2152440

12 queries logged

  1. SELECT *
      FROM jos_session
      WHERE session_id = '1t9tbnhfmmq3gm4ml54aracm92'
  2. DELETE
      FROM jos_session
      WHERE ( time < '1632053359' )
  3. SELECT *
      FROM jos_session
      WHERE session_id = '1t9tbnhfmmq3gm4ml54aracm92'
  4. INSERT INTO `jos_session` ( `session_id`,`time`,`username`,`gid`,`guest`,`client_id` )
      VALUES ( '1t9tbnhfmmq3gm4ml54aracm92','1632054259','','0','1','0' )
  5. SELECT *
      FROM jos_components
      WHERE parent = 0
  6. SELECT folder AS type, element AS name, params
      FROM jos_plugins
      WHERE published >= 1
      AND access <= 0
      ORDER BY ordering
  7. SELECT m.*, c.`option` AS component
      FROM jos_menu AS m
      LEFT JOIN jos_components AS c
      ON m.componentid = c.id
      WHERE m.published = 1
      ORDER BY m.sublevel, m.parent, m.ordering
  8. SELECT template
      FROM jos_templates_menu
      WHERE client_id = 0
      AND (menuid = 0 OR menuid = 60)
      ORDER BY menuid DESC
      LIMIT 0, 1
  9. SELECT a.*, u.name AS author, u.usertype, cc.title AS category, s.title AS section, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END AS slug, CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END AS catslug, g.name AS groups, s.published AS sec_pub, cc.published AS cat_pub, s.access AS sec_access, cc.access AS cat_access 
      FROM jos_content AS a
      LEFT JOIN jos_categories AS cc
      ON cc.id = a.catid
      LEFT JOIN jos_sections AS s
      ON s.id = cc.section
      AND s.scope = "content"
      LEFT JOIN jos_users AS u
      ON u.id = a.created_by
      LEFT JOIN jos_groups AS g
      ON a.access = g.id
      WHERE a.id = 50
      AND (  ( a.created_by = 0 )    OR  ( a.state = 1
      AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2021-09-19 12:24:19' )
      AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2021-09-19 12:24:19' )   )    OR  ( a.state = -1 )  )
  10. UPDATE jos_content
      SET hits = ( hits + 1 )
      WHERE id='50'
  11. SELECT id, title, module, position, content, showtitle, control, params
      FROM jos_modules AS m
      LEFT JOIN jos_modules_menu AS mm
      ON mm.moduleid = m.id
      WHERE m.published = 1
      AND m.access <= 0
      AND m.client_id = 0
      AND ( mm.menuid = 60 OR mm.menuid = 0 )
      ORDER BY position, ordering
  12. SELECT a.*, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END AS slug, CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END AS catslug
      FROM jos_content AS a
      INNER JOIN jos_categories AS cc
      ON cc.id = a.catid
      INNER JOIN jos_sections AS s
      ON s.id = a.sectionid
      WHERE a.state = 1 
      AND a.access <= 0
      AND cc.access <= 0
      AND s.access <= 0
      AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2021-09-19 12:24:19' ) 
      AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2021-09-19 12:24:19' )
      AND cc.id = 1
      AND cc.section = s.id
      AND cc.published = 1
      AND s.published = 1
      ORDER BY a.ordering
      LIMIT 0, 4

Language Files Loaded

Untranslated Strings Diagnostic

None

Untranslated Strings Designer

None