Main > Free Download Search >

Free dive software for linux

dive

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 20
JDiveLog 2.5

JDiveLog 2.5


JDiveLog is a logbook for scuba diving. more>>
JDiveLog is an open source divers logbook for logging scuba dives. JDiveLog project is written in Java (JRE 5.0 or later required). For transfer of dive profiles from a dive computer, the javax.comm package has to be installed and configured.
For Linux I recommend the RXTX implementation. Up to now some Suunto models are supported. I would appreciate feedback whether a dive computer model works or not.
The reason for writing this logbook was, because I couldnt find a logbook software for Linux which had all features i wished.
JDiveLog is licensed under the terms of the GPL. So anybody can use it and modify it as he wants.
Main features:
- Import of UDCF dive profile data
- Displaying dive profiles as nice graphs
- Recording all major dive data
- Managing pictures from the dive trip
- Generation of a simple web page with dive profile, dive data and pictures
- i18n: german and english available
- Units displayed metric or imperial
- Download of dive profiles from Suunto dive computers
- Download of dive profiles from Aladin computers
- Import of logbook data from WLog
- Import of logbook data from DataTrack / MemoMouse
- Statistics of dive partners, dives sites, countries, ...
- Search functionality
<<less
Download (4.2MB)
Added: 2007-06-16 License: GPL (GNU General Public License) Price:
863 downloads
Dive Into Python

Dive Into Python


Dive Into Python is a free Python tutorial, written by Mark Pilgrim. more>>
Dive Into Python is a free Python tutorial, written by Mark Pilgrim.

Dive Into Python book lives at http://diveintopython.org/. If youre reading it somewhere else, you may not have the latest version.

Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in Appendix G, GNU Free Documentation License.

The example programs in this book are free software; you can redistribute and/or modify them under the terms of the Python license as published by the Python Software Foundation. A copy of the license is included in Appendix H, Python license.
<<less
Download (MB)
Added: 2006-05-25 License: Freeware Price:
1252 downloads
phpDiveLog 0.2.7

phpDiveLog 0.2.7


phpDiveLog displays the information of your Aqua DiveLog LogBook. more>>
phpDiveLog project displays the information of your Aqua DiveLog LogBook based on CSV files you generate with the Java Conduit shipped with Aqua DiveLog.
These dynamic pages are nicely and lucidly formatted. phpDiveLog allows you to combine these data with additional information, such as pictures or other external data sources.
You can create your own skins (template sets) to change the look and feel to match your Web site.
Main features:
- ...the DiveLogBook. Here you browse through the list of your dives (in the config file, you may specify how many entries should be displayed per page). For detailed information, a click on the dive# brings you directly to the log books entry.
- ...the Dive Statistics show you some basic stats about your dives, such as max/avg depth and divetime etc.
- ...the Dive Sites Information provides you with a list of your dive sites. Again, a click on the site# brings you to the details page
Enhancements:
- Sorting functionality was added to logbook and sitelist.
- Some vulnerability checks were added.
<<less
Download (0.20MB)
Added: 2006-11-01 License: GPL (GNU General Public License) Price:
1088 downloads
Data::Diver 1.0101

Data::Diver 1.0101


Data::Diver is a simple, ad-hoc access to elements of deeply nested structures. more>>
Data::Diver is a simple, ad-hoc access to elements of deeply nested structures.

SUMMARY

Data::Diver provides the Dive() and DiveVal() functions for ad-hoc access to elements of deeply nested data structures, and the DiveRef(), DiveError(), DiveClear(), and DiveDie() support functions.

SYNOPSIS

use Data::Diver qw( Dive DiveRef DiveError );

my $root= {
top => [
{ first => 1 },
{ second => {
key => [
0, 1, 2, {
three => {
exists => yes,
},
},
],
},
},
],
};

# Sets $value to yes
# ( $root->{top}[1]{second}{key}[3]{three}{exists} ):
my $value= Dive( $root, qw( top 1 second key 3 three exists ) );

# Sets $value to undef() because "missing" doesnt exist:
$value= Dive( $root, qw( top 1 second key 3 three missing ) );

# Sets $value to undef() because
# $root->{top}[1]{second}{key}[4] is off the end of the array:
$value= Dive( $root, qw( top 1 second key 4 ... ) );

# Sets $value to undef() because
# $root->{top}[1]{second}{key}[-5] would be a fatal error:
$value= Dive( $root, qw( top 1 second key -5 ... ) );

# Sets $ref to $root->{top}[9]{new}{sub} (which grows
# @{ $root->{top} } and autovifies two anonymous hashes):
my $ref= DiveRef( $root, qw( top 9 new sub ) );

# die()s because "other" isnt a valid number:
$ref= DiveRef( $root, qw( top other ... ) );

# Does: $root->{num}{1}{2}= 3;
# (Autovivifies hashes despite the numeric keys.)
DiveVal( $root, ( qw( num 1 2 ) ) ) = 3;
# Same thing:
${ DiveRef( $root, num, 1, 2 ) } = 3;

# Retrieves above value, $value= 3:
$value= DiveVal( $root, num, 1, 2 );
# Same thing:
$value= ${ DiveRef( $root, ( qw( num 1 2 ) ) ) };

# Tries to do $root->{top}{1} and dies
# because $root->{top} is an array reference:
DiveRef( $root, top, 1 );

# To only autovivify at the last step:
$ref= DiveRef(
Dive( $root, qw( top 1 second key 3 three ) ),
missing );
if( $ref ) {
$$ref= me too
} else {
my( $nestedRef, $svKey, $errDesc )= DiveError();
die "Couldnt dereference $nestedRef via $$svKey: $errDescn";
}

<<less
Download (0.008MB)
Added: 2007-08-02 License: Perl Artistic License Price:
813 downloads
Prey Dedicated Server 1.2

Prey Dedicated Server 1.2


Prey tells the story of Tommy, a Cherokee garage mechanic stuck on a reservation going nowhere. more>>
Prey tells the story of Tommy, a Cherokee garage mechanic stuck on a reservation going nowhere. His life changes when an otherworldly crisis forces him to awaken spiritual powers from his long-forgotten birthright. Abducted along with his people to a menacing mothership orbiting Earth, he sets out to save himself and his girlfriend and eventually his planet.
Prey is serious, dark story, based on authentic Cherokee mythology. Themes of sacrifice, love and responsibility are explored and the story dives into emotional territory not yet explored by similar games. You will find nothing familiar with this game.
Overview
In Prey, gamers enter an unpredictable world where nothing can be taken for granted. Most of the game takes place within a living ship, a giant entity that can sense and react to Tommys presence.
Prey makes use of Josephs Campbells renowned story structure, "The Heros Journey," for guiding the main character arc. Campbells extensive work on mythological story progression was made famous when George Lucas used it for Luke Skywalkers story arc in the original Star Wars.
Main features:
- Built on an enhanced Doom 3 engine, the most impressive 3D engine used in a released game.
- Portal technology adds a new dimension to gameplay, allowing enemies to appear out of thin air and create new and completely original puzzles and gameplay styles.
- Several never-before-seen gameplay elements such as Spirit Walking, Wall Walking, and Deathwalk.
- Highly organic, living environment that itself can attack Tommy.
- A deep, emotional story of love and sacrifice.
- Tommy has a sidekick, a spiritual hawk that can help him fight enemies and decipher the alien language of the living ship.
- Multiplayer game support that takes advantage of the unique gameplay styles in Prey.
<<less
Download (25.1MB)
Added: 2007-01-15 License: Freeware Price:
1013 downloads
PDL::Indexing 2.4.3

PDL::Indexing 2.4.3


PDL::Indexing Perl module contains a tutorial on how to index piddles. more>>
PDL::Indexing Perl module contains a tutorial on how to index piddles.

This manpage should serve as a first tutorial on the indexing and threading features of PDL.

This manpage is still in alpha development and not yet complete. "Meta" comments that point out deficiencies/omissions of this document will be surrounded by square brackets ([]), e.g. [ Hopefully I will be able to remove this paragraph at some time in the future ]. Furthermore, it is possible that there are errors in the code examples. Please report any errors to Christian Soeller (c.soeller@auckland.ac.nz).

Still to be done are (please bear with us and/or ask on the mailing list, see PDL::FAQ):

document perl level threading
threadids
update and correct description of slice
new functions in slice.pd (affine, lag, splitdim)
reworking of paragraph on explicit threading

Indexing and threading with PDL

A lot of the flexibility and power of PDL relies on the indexing and looping features of the perl extension. Indexing allows access to the data of a pdl object in a very flexible way. Threading provides efficient implicit looping functionality (since the loops are implemented as optimized C code).

Pdl objects (later often called "pdls") are perl objects that represent multidimensional arrays and operations on those. In contrast to simple perl @x style lists the array data is compactly stored in a single block of memory thus taking up a lot less memory and enabling use of fast C code to implement operations (e.g. addition, etc) on pdls.

pdls can have children

Central to many of the indexing capabilities of PDL are the relation of "parent" and "child" between pdls. Many of the indexing commands create a new pdl from an existing pdl. The new pdl is the "child" and the old one is the "parent". The data of the new pdl is defined by a transformation that specifies how to generate (compute) its data from the parents data. The relation between the child pdl and its parent are often bidirectional, meaning that changes in the childs data are propagated back to the parent. (Note: You see, we are aiming in our terminology already towards the new dataflow features. The kind of dataflow that is used by the indexing commands (about which you will learn in a minute) is always in operation, not only when you have explicitly switched on dataflow in your pdl by saying $a->doflow. For further information about data flow check the dataflow manpage.)

Another way to interpret the pdls created by our indexing commands is to view them as a kind of intelligent pointer that points back to some portion or all of its parents data. Therefore, it is not surprising that the parents data (or a portion of it) changes when manipulated through this "pointer". After these introductory remarks that hopefully prepared you for what is coming (rather than confuse you too much) we are going to dive right in and start with a description of the indexing commands and some typical examples how they might be used in PDL programs. We will further illustrate the pointer/dataflow analogies in the context of some of the examples later on.

There are two different implementations of this ``smart pointer relationship: the first one, which is a little slower but works for any transformation is simply to do the transformation forwards and backwards as necessary. The other is to consider the child piddle a ``virtual piddle, which only stores a pointer to the parent and access information so that routines which use the child piddle actually directly access the data in the parent. If the virtual piddle is given to a routine which cannot use it, PDL transparently physicalizes the virtual piddle before letting the routine use it.

Currently (1.94_01) all transformations which are ``affine, i.e. the indices of the data item in the parent piddle are determined by a linear transformation (+ constant) from the indices of the child piddle result in virtual piddles. All other indexing routines (e.g. ->index(...)) result in physical piddles. All routines compiled by PP can accept affine piddles (except those routines that pass pointers to external library functions).

Note that whether something is affine or not does not affect the semantics of what you do in any way: both

$a->index(...) .= 5;
$a->slice(...) .= 5;

change the data in $a. The affinity does, however, have a significant impact on memory usage and performance.

<<less
Download (2.1MB)
Added: 2007-06-28 License: Perl Artistic License Price:
848 downloads
ActivePython 2.4.3.12

ActivePython 2.4.3.12


ActivePython is the complete, quality-assured and ready-to-install Python distribution for AIX, HP-UX, Linux, Mac OS X, Solaris. more>>
ActivePython project is the complete, quality-assured and ready-to-install Python distribution for AIX, HP-UX, Linux, Mac OS X, Solaris, and Windows.
Whats included:
- Python core
- Core extensions zlib and bzip2 for data compression
- bsddb database library
- Tix GUI widgets for Tkinter
- Suite of Windows tools developed by Mark Hammond, including the PythonWin IDE, bindings to the Win32 API, and Windows COM
Complete documentation for new and experienced Python users
- Core Python docs
- Whats New in Python
- Dive into Python
- Python FAQs
- How-tos
- Python Enhancement Proposals (PEPs)
<<less
Download (MB)
Added: 2007-01-12 License: Free To Use But Restricted Price:
2087 downloads
Devel::GDB::Reflect 0.2

Devel::GDB::Reflect 0.2


Devel::GDB::Reflect is a reflection API for GDB/C++. more>>
Devel::GDB::Reflect is a reflection API for GDB/C++.

SYNOPSIS

use Devel::GDB;
use Devel::GDB::Reflect;

my $gdb = new Devel::GDB( -file => $foo );
my $reflector = new Devel::GDB::Reflect( $gdb );

print $gdb->get( "b foo.c:123" );
$gdb->print( "myVariable" );

Devel::GDB::Reflect provides a reflection API for GDB/C++, which can be used to recursively print the contents of STL data structures (vector, set, map, etc.) within a GDB session. It is not limited to STL, however; you can write your own delegates for printing custom container types.

The module implements the functionality used by the gdb++ script, which serves as a wrapper around GDB. You should probably familiarize yourself with the basic functionality of this script first, before diving into the gory details presented here.

Global Variables

The following global variables control the behavior of the "print" method.

$Devel::GDB::Reflect::INDENT

The number of spaces to indent at each level of recursion. Defaults to 4.

$Devel::GDB::Reflect::MAX_DEPTH

The maximum recursion depth. Defaults to 5.

$Devel::GDB::Reflect::MAX_WIDTH

The maximum number of elements to show from a given container. Defaults to 10.

<<less
Download (0.015MB)
Added: 2007-05-08 License: Perl Artistic License Price:
899 downloads
Iter Vehemens ad Necem 0.50

Iter Vehemens ad Necem 0.50


Iter Vehemens ad Necem project is a graphical roguelike game. more>>
Iter Vehemens ad Necem project is a graphical roguelike game.
Iter Vehemens ad Necem (IVAN) is a graphical roguelike game which currently runs in Windows, DOS, and Linux. It features advanced bodypart and material handling, multi-colored lighting and, above all, deep gameplay.
Fellow adventurer, turn back while you can! For here begins the roguelike Iter Vehemens ad Necem, a Violent Road to Death. If you choose to travel along it, you will dive into countless exciting adventures to gain items of great magic, attain powerful equipment made of mysterious materials, bathe in the blessings of mighty gods and recruit loyal allies of various shapes and sizes.
Unfortunately, along the way you will also often be dangerously injured, poisoned, catch numerous diseases, lose several limbs and transform into manifold different kinds of pitiful creatures in the darkest depths of hostile dungeons. And, at the end of the road, you are bound to perish in a most gruesome and painful way. Dont say we didnt warn you.
Enhancements:
- fluids can now cover items and characters and interact with them
- items made of iron alloys can now rust
- added directional light and day and night which use it
- added some cosmetical weather effects
- New Attnam has now many new NPCs, for instance a sumo wrestler who can be challenged
- polymorph control is now more interesting; you need to see a monster once before you can polymorph into it, and more powerful ones require more intelligence
- added wands of acid rain, mirroring and necromancy
- added scrolls of detect material, harden material and golem creation
- added several new monsters, eg. powerful named archangels for each god and necromancers who raise skeletons and zombies to do their bidding
- one can now give pets tactical commands, change their equipment and use them to carry extra stuff (these are accessed using Chat and Issue commands keys)
- the player can now panic if he gets hit too much, like the monsters have done in previous versions
- the player can now become exhausted if he fights for too long and/or uses the new run command too much
- spiders are now able to make webs
- you can now get stuck to slime
- badly hurt/trapped bodyparts now become unusable until they regain some HP/become untrapped
- it is now possible to browse detailed death reasons of individual monsters in the postgame massacre lists
- added many new informative graphical details, for instance recently altered attributes are shown with a different color for some time
- gloomy cave is now longer and has more special levels and rooms
- all the endgame battles are more complex
- added leprosy, a nasty disease which causes your limbs to drop off randomly
<<less
Download (MB)
Added: 2007-01-03 License: GPL (GNU General Public License) Price:
1029 downloads
Danger from the Deep 0.3.0.1

Danger from the Deep 0.3.0.1


Danger from the Deep is a World War II german submarine simulation. more>>
Danger from the deep (aka dangerdeep) is a Free / Open Source World War II german submarine simulation.
It is currently available for Linux/i386 and Windows, but since it uses SDL/OpenGL it should be portable to other operating systems or platforms. (If anyone whishes to port it, please contact us.)
This game is planned as tactical simulation and will be as realistic as our time and knowledge of physics allows. Its current state is ALPHA, but it is playable.
If anyone wants to contribute in development, youre welcome, just email the dangerdeep-devel mailing list. Contributing binary packages for various Linux distributions would also be much appreciated.
To get help with the game you should visit our public forum.
The game has support for multiple languages but currently only English, Italian and German are implemented. It is written in C++ with the use of the STL.
Danger from the Deep is released under the GNU General Public License. The project is hosted on SourceForge, a great supporter of the Open Source community.
Main features:
- simple main menu
- user interface (some items missing)
- basic world simulation, night and day
- realistic water and cloud simulation
- one type of destroyer, one battleship, one aircraft carrier, three subs, eight civilian ship types
- steering, firing, diving, periscope use
- free look engine for testing, periscope, UZO (aiming binoculars), bridge view
- console for logging purposes
- basic physics (acceleration, steering, firing)
- basic destroyer AI (follow, throw depth charges)
- simple vehicle preview
- mission parsing via text files, you can create your own custom missions
- tonnage recording
- log book
<<less
Download (8.3MB)
Added: 2007-06-19 License: GPL (GNU General Public License) Price:
536 downloads
LibTomMath 0.40

LibTomMath 0.40


LibTomMath is a library that provides highly optimized and portable math routines. more>>
LibTomMath is a free open source portable number theoretic multiple-precision integer library written entirely in C. The library is designed to provide a simple to work with API that provides fairly efficient routines that build out of the box without configuration.
The library builds out of the box with GCC 2.95 [and up] as well as Visual C++ v6.00 [with SP5] without configuration. The source code is arranged to make it easy to dive into a particular area very quickly.
The code is also littered with comments [This is one of the on going goals] that help explain the algorithms and their implementations. Ideally the code will serve as an educational tool in the future for CS students studying number theory.
Main features:
Simple Algebraic
- Addition
- Subtraction
- Multiplication
- Squaring
- Division
Digit Manipulation
- Shift left/right whole digits (mult by 2b by moving digits)
- Fast multiplication/division by 2 and 2k for k>1
- Binary AND, OR and XOR gates
Modular Reductions
- Barrett Reduction (fast for any p)
- Montgomery Reduction (faster for any odd p)
- DR Reduction (faster for any restricted p see manual)
- 2k Reduction (fast reduction modulo 2p - k for k < MP_MASK and for k > MP_MASK)
- The exptmod logic can use any of the five reduction algorithms when appropriate with a single function call.
Number Theoretic
- Greatest Common Divisor
- Least Common Multiple
- Jacobi Symbol Computation (falls back to Legendre for prime moduli)
- Multiplicative Inverse
- Extended Euclidean Algorithm
- Modular Exponentiation
- Fermat and Miller-Rabin Primality Tests, utility function such as is_prime and next_prime
Miscellaneous
- Root finding over Z
- Pseudo-random integers
- Signed and Unsigned comparisons
Optimizations
- Fast Comba based Multiplier, Squaring and Montgomery routines.
- Montgomery, Diminished Radix and Barrett based modular exponentiation.
- Karatsuba and Toom-Cook multiplication algorithms.
- Many pointer aliasing optimiztions throughout the entire library.
Enhancements:
- This release fixes one overflow and a minor build issue.
- Otherwise, the code is stable and unchanged.
<<less
Download (1.8MB)
Added: 2006-12-27 License: GPL (GNU General Public License) Price:
1036 downloads
GalaxyMage 0.3.0

GalaxyMage 0.3.0


GalaxyMage is a free, open-source tactical/strategic RPG for Windows, Linux, and Macintosh. more>>
GalaxyMage is a free, open-source tactical/strategic RPG for Windows, Linux, and Macintosh.

The tipical RPG game system is a type of role-playing game where turn-based battles are fought on a 3D map. Examples of commercial tactical RPGs include Final Fantasy Tactics, Vandal Hearts, and Disgaea: Hour of Darkness.

Our goal is to make GalaxyMage a game that is relatively simple to pick up and play -- you can dive right in without getting bogged down in the details of the battle mechanics -- but to also allow for a lot of character development and customization.

We also intend to create a unique, advanced AI system that allows enemy units to work together as a team and employ a wide variety of strategies. And eventually, we plan on adding networked multiplayer support.

<<less
Download (3.8MB)
Added: 2006-03-26 License: GPL (GNU General Public License) Price:
1308 downloads
WWW::Myspace 0.60

WWW::Myspace 0.60


WWW::Myspace is a Perl module to access MySpace.com profile information from Perl. more>>
WWW::Myspace is a Perl module to access MySpace.com profile information from Perl.

WARNING - DO NOT USE THIS MODULE FOR MASS MESSAGING OR COMMENTING.

Myspace will cripple or disable your account:

Older accounts:

Messages will appear in your Sent folder but not in the receivers inbox, although theyll be able to see it if theyre paging through from another message. The receiver will get a "New Comments" notification and be able to see your comment, but it wont appear on the profile page.

Newer accounts:

If you created your myspace account in or after June 2006 (approximately), and you use a "bot" (including this module) to send messages, your message sending ability will be disabled and your account may be deleted. This is due to security features myspace has implemented to prevent spam abuse by people using multiple accounts.

SYNOPSIS

WWW::Myspace.pm provides methods to access your myspace.com account and functions automatically. It provides a simple interface for scripts to log in, access lists of friends, scan users profiles, retreive profile data, send messages, and post comments.

use WWW::Myspace;
my $myspace = WWW::Myspace->new ($account, $password);
OR
my $myspace = new WWW::Myspace; # Prompts for email and password
unless ( $myspace->logged_in ) { die "Login failed: " . $myspace->error }

my ( @friends ) = $myspace->get_friends();

This module is designed to help you automate and centralize redundant tasks so that you can better handle keeping in personal touch with numerous friends or fans, or coordinate fan communications among multiple band members. This module operates well within MySpaces security measures. If youre looking for a spambot, this aint it.

WWW::Myspace works by interacting with the site through a UserAgent object, using HTTP::Request::Form to process forms. Since by nature web sites are dynamic, if you find that some interaction with the site breaks, check for a new version of this module (or if you go source diving, submit a patch). You can run "cpan -i WWW::Myspace" as a cron job or before running your scripts, if appropriate, to make sure you have the latest version.

<<less
Download (0.13MB)
Added: 2006-12-18 License: Perl Artistic License Price:
1044 downloads
HPC Toolkit 4.2.1

HPC Toolkit 4.2.1


HPC Toolkit is a tool for profile-based performance analysis of applications. more>>
HPCToolkit is an open-source suite of multi-platform tools for profile-based performance analysis of applications. The figure provides an overview of the toolkit components and their relationships.
Main features:
- hpcrun: a tool for profiling executions of unmodified application binaries using statistical sampling of hardware performance counters.
- hpcprof & xprof: tools for interpeting sample-based execution profiles and relating them back to program source lines.
- bloop: a tool for analyzing application binaries to recover program structure; namely, to identify where loops are present and what program source lines they contain.
- hpcview: a tool for correlating program structure information, multiple sample-based performance profiles, and program source code to produce a performance database.
- hpcviewer: a java-based GUI for exploring databases consisting of performance information correlated with program source.
A program called hpcview is at the toolkits center. It takes performance profiles, program structure information, and, under the direction of a configuration file, correlates it with application source code to produce a browsable performance database.
hpcview also enables the user to define expressions to compute derived metrics as functions other metrics already defined (e.g. measured metrics read from data files or previously-computed derived metrics).
Performance databases are explored using our Java-based hpcviewer user interface that enables one to explore an applications performance data in a top-down fashion and enables one to easily navigate back and forth between performance data and source code.
The user interface presents performance data in a hierarchical display. At any time, you are looking at some program context (program, file, procedure, loop, or line). Also displayed is the data for both the parent and the children of the current context. Up and down arrows on the lines of the display are used to walk the hierarchy.
In order to speed up top-down analysis, the interface also provides `flatten and `un-flatten buttons. Their icons hint at their function. `Flatten modifies the hierarchy by eliding non-leaf children of the current node and replacing them with the grandchildren.
Unflatten reverses this. Since the tables are sorted, the flatten operation makes short work of diving into the program from the top to identify the most important files, procedures, loops and statements.
Performance data manipulated by hpcview can come from any source, as long as the profile data can be translated or saved directly to a standard, profile-like input format. To date, the principal sources of input data for hpcview have been hardware performance counter profiles.
Such profiles are generated by setting up a hardware counter to monitor events of interest (e.g., primary cache misses), to generate a trap when the counter overflows, and then to histogram the program counter values at which these traps occur. For Linux, we developed the hpcrun tool to collect profiles by sampling hardware performance counters.
This tool uses UTKs PAPI library for access to hardware performance counters. A second tool, hpcprof is used to map profiles collected using hpcrun back to program source lines. hpcprof is based on code from Curt Janssens cprof/vprof profiler. On operating systems other than Linux, we use vendor-supplied tools to collect profile data. On MIPS+Irix platforms, we use SGIs ssrun tool to collect profiles. On Alpha+Tru64, we use either with Compaqs uprofile or DCPI utilities for this purpose.
hpcview and hpcviewer can be used to view profile-like data of any type, not just data sampled from hardware performance counters. To analyze one program that contained many register spills, we built a perl script to examine assembly code generated by the SGI compilers for MIPS+Irix and create profiles that map register spills back to source code lines.
To facilitate automation, the programs in HPCToolkit are intended to be run using scripts and configuration files. Once these are set up, rerunning the program to collect new data, and all of the steps that go into generating a browsable dataset can be completely automated. The scripts automate the collection of data and conversion of profile data into a common, XML-based format.
Other performance tools (e.g. SGIs ssrun) report performance data at the line, procedure, and program level. However, since much of the time in scientific programs is spent in loops; having data at the loop level as well is critical to facilitate performance tuning.
For this reason, HPCToolkit includes a binary analyzer bloop that extracts loop nesting structure from application binaries and uses symbol table line map information to map this structure back to the source programs level. Because bloop works on binaries, this process is independent of the language used (though in practice it can be somewhat compiler dependent).
The loop nesting structure information produced by bloop enables hpcview to associate performance data with each loop in a program without incurring any additional overhead for data collection during program execution.
Supported platforms: Pentium+Linux, Opteron+Linux, Athlon+Linux, Itanium+Linux, Alpha+Tru64 and MIPS+Irix.
HPCToolkit is open-source software released with a BSD-like license.
<<less
Download (0.30MB)
Added: 2006-11-28 License: GPL (GNU General Public License) Price:
1066 downloads
Solving Constraint Integer Programs 0.90

Solving Constraint Integer Programs 0.90


Solving Constraint Integer Programs is a framework for constraint integer programming. more>>
Solving Constraint Integer Programs is a framework for constraint integer programming. For solving Integer Programs and Constraint Programs, a very similar technique is used: the problem is successively divided into smaller subproblems (branching) that are solved recursively.
On the other hand, Integer Programming and Constraint Programming have different strengths: Integer Programming uses LP relaxations and cutting planes to provide strong dual bounds, while Constraint Programming can handle arbitrary (non-linear) constraints and uses propagation to tighten the variables domains.
SCIP is a framework for Constraint Integer Programming oriented towards the needs of Mathematical Programming experts who want to have total control of the solution process and access detailed information down to the guts of the solver. SCIP can also be used as pure MIP solver or as framework for branch-cut-and-price.
Main features:
- It is a framework for branching, cutting, pricing, and propagation.
- It is highly flexible through many possible user plugins:
- constraint handlers to implement arbitrary constraints,
- variable pricers to dynamically create problem variables,
- domain propagators to apply constraint independent propagations on the variables domains,
- cut separators to apply cutting planes on the LP relaxation,
- relaxators to provide relaxations and dual bounds in addition to the LP relaxation,
- primal heuristics to search for feasible solutions with specific support for probing and diving,
- node selectors to guide the search,
- branching rules to split the problem into subproblems,
- presolvers to simplify the solved problem,
- file readers to parse different input file formats,
- event handlers to be informed on specific events, e.g., when a node was solved, a specific variable changed its bounds, or a new primal solution was found,
- display handlers to create additional columns in the solvers output.
- dialog handlers to extend the included command shell.
- Every existing unit is implemented as a plugin, leading to an interface flexible enough to meet the needs of most additional user extensions.
- A dynamic cut pool management is included.
- The user may mix preprocessed and active problem variables in expressions: they are automatically transformed to corresponding active problem variables.
- Arbitrarily many children per node can be created, and the different children can be arbitrarily defined.
- It has an open LP solver support (currently supporting ILOG CPLEX, Dash XPress-MP, SoPlex, and CLP.
- The LP relaxation need not to be solved at every single node (it can even be turned off completely, mimicing a pure constraint solver).
- Additional relaxations (e.g., semidefinite relaxations or Lagrangian relaxations) can be included, working in parallel or interleaved.
- Conflict analysis can be applied to learn from infeasible subproblems.
- Dynamic memory management reduces the number of operation system calls with automatic memory leakage detection in debug mode.
Enhancements:
- The new heuristics "RENS", "mutation", "veclendiving", and "intshifting", were included.
- The existing ones were improved.
- Presolving and c-MIR cut generation were improved.
- A few bugs were fixed.
<<less
Download (MB)
Added: 2006-09-01 License: Other/Proprietary License Price:
1154 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 2
  • 1
  • 2