- Created entrypoint-self-terminate.sh wrapper script - Updates entrypoint-generic.sh to be called by wrapper - Modified Dockerfile.runpod to use self-terminate entrypoint - Adds automatic pod termination via runpodctl after training completes - Prevents infinite restart loops and wasted GPU credits - Saves ~96% cost per training run ($4.59 per run) Implements pod self-termination using RUNPOD_POD_ID environment variable. Training exits with code 0 → runpodctl remove pod → immediate shutdown. Co-Authored-By: Claude <noreply@anthropic.com>
36 lines
1.1 KiB
Rust
36 lines
1.1 KiB
Rust
// Test 4: Parquet file reading
|
|
use std::fs::File;
|
|
use parquet::file::reader::{FileReader, SerializedFileReader};
|
|
|
|
fn main() {
|
|
println!("Test 4: Parquet file reading");
|
|
|
|
let test_files = vec![
|
|
"/workspace/test_data/ES_FUT_180d.parquet",
|
|
"/test_data/ES_FUT_180d.parquet",
|
|
"./test_data/ES_FUT_180d.parquet",
|
|
];
|
|
|
|
for path in test_files {
|
|
println!("Trying: {}", path);
|
|
match File::open(path) {
|
|
Ok(file) => {
|
|
println!(" ✓ File opened");
|
|
match SerializedFileReader::new(file) {
|
|
Ok(reader) => {
|
|
let metadata = reader.metadata();
|
|
println!(" ✓ Parquet reader created");
|
|
println!(" ✓ Num row groups: {}", metadata.num_row_groups());
|
|
break;
|
|
}
|
|
Err(e) => println!(" ✗ Parquet reader failed: {}", e),
|
|
}
|
|
}
|
|
Err(e) => println!(" ✗ File open failed: {}", e),
|
|
}
|
|
}
|
|
|
|
std::thread::sleep(std::time::Duration::from_secs(10));
|
|
println!("Test 4 complete");
|
|
}
|