GithubHelp home page GithubHelp logo

llnl / libyogrt Goto Github PK

View Code? Open in Web Editor NEW
4.0 8.0 10.0 687 KB

Your One Get Remaining Time library

License: GNU Lesser General Public License v2.1

Fortran 0.15% C 65.34% Shell 9.09% Makefile 5.14% M4 20.28%

libyogrt's Introduction

Your One Get Remaining Time library

This library provides functions to query a resource manager for the time remaining in a job.

It supports:

  • LCRM
  • LSF
  • MOAB
  • SLURM
  • AIX w/ SLURM
  • Flux

See src/yogrt.h for documentation.

Build

To build configure after cloning the repo:

./bootstrap

To build and install:

mkdir build
cd build
../configure
make
make install

To build a release tarball, update version in configure.ac file:

mkdir build
cd build
../configure
make distcheck

libyogrt's People

Contributors

adammoody avatar lipari avatar morrone avatar ofaaland avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libyogrt's Issues

Documentation says yogrt_remaining can only be called on rank 0

The documentation says that yogrt can only be called on process 0. Presumably process means rank in an MPI context?

(This call may ONLY be used by process rank zero of a parallel job.)

It also says that it will return -1 when called by any process (rank?) not equal to 0.
Returns -1 when called from any task other than task zero.

On lassen, it appears that yogrt_remaining() returns reasonable positive values when called from rank 1.

Spack libyogrt install does not create a yogrt.conf file

Running spack install libyogrt scheduler=slurm does not create a working libyogrt install on some machines because there is no yogrt.conf file created, and the autodetect does not seem to work. I put a pull request up on the spack github to create the file at the end of the install. I'm not sure who needs to look at this sort of change, but I'll post the PR here.

spack/spack#19960

build with LSF support via spack

Hi,

I'm trying to get spack to build libyogrt with LSF support, but it's not clear to me how to explicitly turn on LSF support in the build system. Is that possible, or is LSF automatically detected at configure time?

I have started a PR spack/spack#10884 to add the latest versions of libyogrt. I would like to get the LSF option in there as well. Relatedly, which version(s) of libyogrt have support for LSF?

Thank you!

libraries getting a sub-communicator cannot reliably use yogrt

Tom writes:

When writing a library rather than an application, we only get a sub-communicator, so we don't know if we have rank 0 of MPI_COMM_WORLD or not. If we don't, we can't get the time remaining. If the restriction is to avoid n simultaneous queries to the scheduler, perhaps a request from rank 0 of any subcommunicator could get the right value.

The reasons for the current restriction that only rank 0 can call yogrt_remaining() and get the remaining time are described in yogrt_remaining(3).

Since not all resource managers have the same limitations on their ability to handle such queries, and the other concerns could be managed by library or application authors, it may be reasonable to relax this restriction for library authors.

Avoid `verbosity` symbol in static library.

Having verbosity as an symbol in the static library can cause conflicts with other libraries doing the same:

<omitted>/libmili.a(mili.o): In function 'verbosity':
mili.c:(.text+0x5590): multiple definition of 'verbosity'
<omitted>/libyogrt.a(libyogrt_la-yogrt.o):(.bss+0x84): first defined here
/usr/bin/ld: Warning: size of symbol 'verbosity' changed from 4 in <omitted>/libyogrt.a(libyogrt_la-yogrt.o) to 32 in <omitted>/libmili.a(mili.o)

prefixing e.g. yogrt_ should be sufficient to avoid this.

I've submitted an issue to the other library for the same thing.

Error in config with slurm

Hello.
I am getting a "configure: error: slurm is not in specified location!" while running "../configure -with-slurm=/usr".

Here is the full config.log:
config.log
Andere is the part of the config.log concerning slurm:

configure:12089: checking for slurm installation
configure:12116: gcc -o conftest -g -O2   conftest.c -L/usr/lib64 -lslurm -lpthread -lcrypto  >&5
conftest.c:26:20: error: expected declaration specifiers or '...' before numeric constant
 slurm_get_rem_time(0);
                    ^
configure:12116: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Your One Get Remaining Time library"
| #define PACKAGE_TARNAME "libyogrt"
| #define PACKAGE_VERSION "1.21"
| #define PACKAGE_STRING "Your One Get Remaining Time library 1.21"
| #define PACKAGE_BUGREPORT "https://github.com/LLNL/libyogrt/issues"
| #define PACKAGE_URL "https://github.com/LLNL/libyogrt"
| #define PACKAGE "libyogrt"
| #define VERSION "1.21"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define LIBYOGRT_LT_CURRENT /**/
| #define LIBYOGRT_LT_REVISION /**/
| #define LIBYOGRT_LT_AGE /**/
| /* end confdefs.h.  */
| slurm_get_rem_time(0);
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:12116: gcc -o conftest -g -O2   conftest.c -L/usr/lib -lslurm -lpthread -lcrypto  >&5
conftest.c:26:20: error: expected declaration specifiers or '...' before numeric constant
 slurm_get_rem_time(0);
                    ^
configure:12116: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Your One Get Remaining Time library"
| #define PACKAGE_TARNAME "libyogrt"
| #define PACKAGE_VERSION "1.21"
| #define PACKAGE_STRING "Your One Get Remaining Time library 1.21"
| #define PACKAGE_BUGREPORT "https://github.com/LLNL/libyogrt/issues"
| #define PACKAGE_URL "https://github.com/LLNL/libyogrt"
| #define PACKAGE "libyogrt"
| #define VERSION "1.21"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define LIBYOGRT_LT_CURRENT /**/
| #define LIBYOGRT_LT_REVISION /**/
| #define LIBYOGRT_LT_AGE /**/
| /* end confdefs.h.  */
| slurm_get_rem_time(0);
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:12130: result: 
configure:12145: error: slurm is not in specified location!

How could I fix this error?
thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.