Skip to content

Commit a0d4c9a

Browse files
committed
v0.0.5 release
1 parent ffa0ab0 commit a0d4c9a

3 files changed

Lines changed: 118 additions & 24 deletions

File tree

README.md

Lines changed: 108 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -73,27 +73,22 @@ Join the [Slack channel](https://join.slack.com/t/ftioworkspace/shared_invite/zt
7373

7474
## Installation
7575

76-
FTIO is available on PYPI and can be easily installed via pip:
77-
78-
```sh
79-
pip install ftio-hpc
80-
```
81-
82-
For the latest GitHub version, FTIO can be installed either [automatically](#automated-installation) or [manually](#manual-installation). As a prerequisite,
76+
FTIO is available on PYPI and can be easily installed via [pip](#automated-installation-from-pypi). For the latest GitHub version, FTIO can be installed either [automatically](#automated-installation) or [manually](#manual-installation). As a prerequisite,
8377
for the virtual environment, `python3.11-venv` is needed, which can be installed on Ubuntu, for example, with:
8478

8579
```sh
8680
apt install python3.11-venv
8781
```
8882

89-
> [!note]
90-
> Note there are currently issues with pyDarshan on Mac, that can be solved as mentioned [here](https://github.com/darshan-hpc/darshan/issues/930)
91-
92-
### Automated installation
83+
If you want to contribute to the code, we advise that you install FTIO as mentioned under [contributing](#contributing).
84+
### Automated installation from GitHub
9385

9486
FTIO is installed by default in a virtual environment. For the automated installation, simply execute the command:
9587

9688
```sh
89+
# clone FTIO
90+
git clone https://github.com/tuda-parallel/FTIO.git
91+
cd FTIO
9792
# uses by default python3
9893
make install
9994

@@ -111,11 +106,13 @@ If you don't need a dedicated environment, just call:
111106
make ftio PYTHON=python3
112107
```
113108

114-
### Manual installation
109+
### Manual installation from GitHub
115110

116111
Create a virtual environment if needed and activate it:
117112

118113
```sh
114+
git clone https://github.com/tuda-parallel/FTIO.git
115+
cd FTIO
119116
python3 -m venv .venv
120117
source .venv/bin/activate
121118
```
@@ -133,8 +130,22 @@ pip install .
133130
> source path/to/venv/bin/activate
134131
> ```
135132
133+
> [!note]
134+
> Note there are currently issues with pyDarshan on Mac and windows, that can be solved as mentioned [here](https://github.com/darshan-hpc/darshan/issues/930)
135+
136136
<p align="right"><a href="#ftio"></a></p>
137137
138+
### Automated installation from PYPI
139+
FTIO is available on PYPI and can be easily installed via pip:
140+
141+
```sh
142+
pip install ftio-hpc
143+
```
144+
145+
> [!note]
146+
> Note there are currently issues with pyDarshan on Mac and windows, that can be solved as mentioned [here](https://github.com/darshan-hpc/darshan/issues/930)
147+
148+
138149
## Usage
139150

140151
For installation instructions see [installation](#installation).
@@ -204,24 +215,102 @@ Several flags can be specified. The most relevant settings are:
204215

205216
## Testing
206217

207-
There is a `8.jsonl` file provided for testing under [examples](https://github.com/tuda-parallel/FTIO/tree/main/examples). On your system, navigate to the folder [examples/tmio/JSONL](https://github.com/tuda-parallel/FTIO/tree/main/examples/tmio/JSONL) and call:
218+
There is a `8.jsonl` file provided for testing under [examples](https://github.com/tuda-parallel/FTIO/tree/main/examples).
219+
On your system, navigate to the folder [examples/tmio/JSONL](https://github.com/tuda-parallel/FTIO/tree/main/examples/tmio/JSONL) and call:
208220

209221
```sh
210222
ftio 8.jsonl
211223
```
224+
225+
## Examples
226+
Several examples are provided under [examples](https://github.com/tuda-parallel/FTIO/tree/main/examples).
212227
See also the examples provided [here](/docs/file_formats.md#file-formats-and-tools) for the different file formats.
228+
229+
Alternatively, the [artifact folder](https://github.com/tuda-parallel/FTIO/tree/main/artifacts/ipdps24) contains several instructions and examples traces
230+
from the [FTIO paper](#citation) that can be simply downloaded as described [here](https://github.com/tuda-parallel/FTIO/tree/main/artifacts/ipdps24#extracting-the-data-set).
231+
232+
As `ftio` supports Darshan traces, you could download also traces from [https://hpcioanalysis.zdv.uni-mainz.de/](https://hpcioanalysis.zdv.uni-mainz.de/) and execute FTIO on them as described [here](https://github.com/tuda-parallel/FTIO/blob/main/docs/file_formats.md#darshan).
233+
234+
For an online example with `predictor`, you can follow the instructions here for [HACC-IO](https://github.com/tuda-parallel/FTIO/tree/main/artifacts/ipdps24/HACC-IO#ftio-online-evaluation).
235+
213236
<p align="right"><a href="#ftio">⬆</a></p>
214237

215238
<!-- CONTRIBUTING -->
216239
## Contributing
217240

218-
If you have a suggestion that would make this better, please fork the repository and create a pull request.
219241

220-
1. Fork the project
221-
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
222-
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
223-
4. Push to the branch (`git push origin feature/AmazingFeature`)
224-
5. Open a pull request
242+
### Step 1: Fork the Repository
243+
1. Visit the [FTIO GitHub repository](https://github.com/tuda-parallel/FTIO).
244+
2. Click the **Fork** button in the top-right corner to create a copy of the repository under your GitHub account.
245+
246+
### Step 2: Clone Your Fork
247+
Clone the forked repository to your local machine:
248+
```bash
249+
git clone https://github.com/<your-username>/FTIO.git
250+
```
251+
252+
Replace `<your-username>` with your GitHub username.
253+
254+
### Step 3: Navigate to the Project Directory
255+
```bash
256+
cd FTIO
257+
```
258+
259+
### Step 4: Build the Project in Debug Mode
260+
Compile the project using the `make debug` command:
261+
```bash
262+
# allows to directly test the changes made
263+
make debug
264+
```
265+
266+
This will generate a debug build of the project, useful for development and troubleshooting.
267+
268+
### Step 5: Sync with the Original Repository (Optional)
269+
To stay up-to-date with the latest changes from the main repository:
270+
```bash
271+
git remote add upstream https://github.com/tuda-parallel/FTIO.git
272+
git fetch upstream
273+
git merge upstream/main
274+
```
275+
276+
### Step 6: Create an Issue for Your Contribution
277+
Before starting your work, create an issue on the repository to describe the feature, bug fix, or enhancement you plan to implement. This helps us track contributions and avoids duplicate work.
278+
279+
1. Go to the **Issues** tab in the [FTIO repository](https://github.com/tuda-parallel/FTIO).
280+
2. Click **New Issue** and provide a clear title and description.
281+
3. Label the issue appropriately (e.g., `enhancement`, `bug`, or `question`).
282+
283+
### Step 7: Make Your Changes
284+
1. Create a new branch for your changes:
285+
```bash
286+
git checkout -b <your-feature-branch>
287+
```
288+
Replace `<your-feature-branch>` with a descriptive name for your branch.
289+
290+
2. Make your desired changes and commit them:
291+
```bash
292+
git add .
293+
git commit -m "Description of your changes"
294+
```
295+
296+
### Step 8: Push Your Changes
297+
Push your changes to your forked repository:
298+
```bash
299+
git push origin <your-feature-branch>
300+
```
301+
302+
303+
## Step 9: Create a Pull Request to the `development` Branch
304+
1. Navigate to the original FTIO repository on GitHub.
305+
2. Click the **Pull Requests** tab, then click **New Pull Request**.
306+
3. Set the target branch to `development`:
307+
- **Base Repository:** `tuda-parallel/FTIO`
308+
- **Base Branch:** `development`
309+
- **Compare Branch:** `<your-feature-branch>`
310+
4. Provide a detailed description of your changes, referencing the issue you created earlier (e.g., `Fixes #123`).
311+
5. Submit your pull request and wait for feedback from the maintainers.
312+
313+
We look forward to your contributions! 🎉
225314

226315
<p align="right"><a href="#ftio">⬆</a></p>
227316

artifacts/ipdps24/HACC-IO/README.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,21 @@ Remove `-e no` if you want to obtain figures (Fig 12 and 14 from the paper).
3333

3434
## FTIO: Online Evaluation
3535
- [Install TMIO](https://github.com/tuda-parallel/TMIO#installation)
36-
- If you didn't install `ftio`, first check out version 0.0.1 as described [here](/artifacts/ipdps24/README.md#ftio-version), then install it as described [here](https://github.com/tuda-parallel/FTIO#installation).
36+
- If you didn't install `ftio`, first check out version 0.0.1 as described [here](/artifacts/ipdps24/README.md#ftio-version), then install it as described [here](https://github.com/tuda-parallel/FTIO#installation). If you don't want to reproduce the experiment from the paper but rather just try FTIO online, then you can skip checking out to a particular version.
3737

38-
In case you are interested in the original, it is [here](https://github.com/glennklockwood/hacc-io). For our experiments, we modified the code such that it is executed in a loop.
39-
Navigate to the folder where the source code of the _modified_ version of HACC-IO is presented in `data/application_traces/HACC-IO/src`. Modify the provided Makefile to point to your TMIO git repository:
38+
In case you are interested in the original version of the benchmark, it is [here](https://github.com/glennklockwood/hacc-io). For our experiments, we modified the code such that it is executed in a loop.
39+
Navigate to the folder where the source code of the _modified_ version of HACC-IO is presented in `data/application_traces/HACC-IO/src` or clone it from here:
40+
41+
```bash
42+
git clone https://github.com/A-Tarraf/hacc-io.git
43+
```
44+
45+
Modify the provided Makefile to point to your TMIO git repository:
4046

4147
```bash
4248
4349
TMIO_REPO= /d/github/TMIO #modify this line
4450
45-
4651
```
4752

4853
A provided Makefile takes care of including TMIO into the HACC-IO source code. For that, execute:

ftio/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# See the LICENSE file in the base directory for details.
77

88
__title__ = "FTIO"
9-
__version__ = "0.0.4"
9+
__version__ = "0.0.5"
1010
__license__ = "BSD 3"
1111
__description__ = "FTIO: Capturing Periodic I/O Using Frequency Techniques"
1212
__copyright__ = "Copyright (c) 2023-2024 Technical University of Darmstadt, Darmstadt, Germany"

0 commit comments

Comments
 (0)