Comments (3)
This is only for the executable file, not libraries.
The loader creates a mapping (via mmap()
) to the text/data segments of the executable file in the globally available file (stored in a file system that is shared across all the nodes). The idea is to remap those mappings to the file in the spindle cache (file system local to the node). This way, when those segments are paged in, they will be read from the local file stored locally instead of the shared one.
The implementation of this already exists and is executed when you run with the --debug=yes
command line argument. The intention of this ticket is to test this feature further to determine whether we can use it by default.
One of the benefits of doing this is that it will allow readsym()
to /proc/<pid>/exe
to continue to work for programs that wish to use it.
from spindle.
Sorry if this is a silly question:
Won't this cause a lot more memory usage for shared libraries, shared across many processes on the same node? What's the advantage?
from spindle.
@mplegendre and I discovered that we were able to mmap over the entire text and data segment and /proc/<pid>/exe
was preserved. I need to test this again on a TOSS-2 system to see if this is something that may have been fixed with later versions of Linux. Just adding a note here so that I don't forget.
from spindle.
Related Issues (20)
- Compiling on x86 has missing pthread definitions HOT 2
- master doesn't build HOT 3
- Support for ppc64le
- Spindle not searching PATH when running with "--reloc-aout=no" or "--debug=yes" HOT 1
- spindle-build not handling --prefix=path properly for path strings that contain macros which get expanded by CPP HOT 1
- Spindle fstat() on opened local file should get stat() results from global file HOT 1
- Investigate where readlink() is coming from when Python is launched on cori. HOT 1
- Update repo topics HOT 1
- Can I run SPINDLE with OpenMPI launcher without MPIR? HOT 4
- $ORIGIN in $RPATH in nested dependency is not handled correctly HOT 3
- Segmentation fault with BIND_NOW executable HOT 1
- Manual and spack installation testsuite problems looking for libfunctdict.so HOT 1
- Spack package update needed to 0.9 release; missing -Wno_narrowing flag in 0.8.1 release HOT 2
- Missing mpi.h in testsuite and request for clarification on MPI variant use with Spindle HOT 7
- not-found: command not found HOT 1
- Spindle could not connect to session HOT 9
- Incorrect FSF address
- Spack package is out-of-date (v0.13)
- flux plugin build and install broken HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spindle.