Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Executing Experiments #30

Closed
Dslab2025 opened this issue Jan 14, 2025 · 5 comments
Closed

Executing Experiments #30

Dslab2025 opened this issue Jan 14, 2025 · 5 comments

Comments

@Dslab2025
Copy link

I am using Local workstation. Its a Linuxmint system with 32core CPU and 2 RTX 40 series GPUs
I dont have SLRUM, but Gromacs and Amber pmemd.cuda installed and called through ~/.bashrc.

As per quick start instruction I copy all the files, but it returns following error

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ in :3 │
│ │
│ 1 import a3fe as a3 │
│ 2 calc = a3.Calculation(ensemble_size=5) │
│ ❱ 3 calc.setup() │
│ 4 calc.get_optimal_lam_vals() │
│ 5 calc.run(adaptive=False, runtime = 5) # Run non-adaptively for 5 ns per replicate │
│ 6 calc.wait() │
│ │
│ /home/nayan/Desktop/a3fe/a3fe/run/calculation.py:211 in setup │
│ │
│ 208 │ │ │ │ stream_log_level=self.stream_log_level, │
│ 209 │ │ │ ) │
│ 210 │ │ │ self.legs.append(leg) │
│ ❱ 211 │ │ │ leg.setup(configs[leg_type]) │
│ 212 │ │ │
│ 213 │ │ # Save the state │
│ 214 │ │ self.setup_complete = True │
│ │
│ /home/nayan/Desktop/a3fe/a3fe/run/leg.py:230 in setup │
│ │
│ 227 │ │ if self.prep_stage == _PreparationStage.STRUCTURES_ONLY: │
│ 228 │ │ │ self.parameterise_input(slurm=cfg.slurm) │
│ 229 │ │ if self.prep_stage == _PreparationStage.PARAMETERISED: │
│ ❱ 230 │ │ │ self.solvate_input(slurm=cfg.slurm) # This also adds ions │
│ 231 │ │ if self.prep_stage == _PreparationStage.SOLVATED: │
│ 232 │ │ │ system = self.minimise_input(slurm=cfg.slurm) │
│ 233 │ │ if self.prep_stage == _PreparationStage.MINIMISED: │
│ │
│ /home/nayan/Desktop/a3fe/a3fe/run/leg.py:466 in solvate_input │
│ │
│ 463 │ │ │ │ fn = _system_prep.slurm_solvate_free │
│ 464 │ │ │ else: │
│ 465 │ │ │ │ raise ValueError("Invalid leg type.") │
│ ❱ 466 │ │ │ self._run_slurm(fn, wait=True, run_dir=self.input_dir, job_name=job_name) │
│ 467 │ │ │ │
│ 468 │ │ │ # Check that the required input files have been produced, since slurm can fa │
│ 469 │ │ │ for file in _PreparationStage.SOLVATED.get_simulation_input_files( │
│ │
│ /home/nayan/Desktop/a3fe/a3fe/run/leg.py:899 in _run_slurm │
│ │
│ 896 │ │ │ f"{run_dir}/{job_name}.sh", │
│ 897 │ │ ] # The virtual queue adds sbatch │
│ 898 │ │ slurm_file_base = _get_slurm_file_base(slurm_file) │
│ ❱ 899 │ │ job = self.virtual_queue.submit(cmd_list, slurm_file_base=slurm_file_base) │
│ 900 │ │ self._logger.info(f"Submitted job {job}") │
│ 901 │ │ self.jobs.append(job) │
│ 902 │ │ # Update the virtual queue to submit the job │
│ │
│ /home/nayan/Desktop/a3fe/a3fe/run/_virtual_queue.py:170 in submit │
│ │
│ 167 │ │ self._pre_queue.append(job) │
│ 168 │ │ self._logger.info(f"{job} submitted") │
│ 169 │ │ # Now update - the job will be moved to the real queue if there is space │
│ ❱ 170 │ │ self.update() │
│ 171 │ │ return job │
│ 172 │ │
│ 173 │ def kill(self, job: Job) -> None: │
│ │
│ /home/nayan/Desktop/a3fe/a3fe/run/_virtual_queue.py:280 in update │
│ │
│ 277 │ │ """Remove jobs from the queue if they have finished, then move jobs from │
│ 278 │ │ the pre-queue to the real queue if there is space.""" │
│ 279 │ │ # First, remove jobs from the queue if they have finished │
│ ❱ 280 │ │ running_slurm_job_ids = self._read_slurm_queue() │
│ 281 │ │ n_running_slurm_jobs = len(running_slurm_job_ids) │
│ 282 │ │ # Remove completed jobs from the queues and update their status │
│ 283 │ │ for job in self._slurm_queue: │
│ │
│ /home/nayan/Desktop/a3fe/a3fe/run/_virtual_queue.py:231 in _read_slurm_queue │
│ │
│ 228 │ │ │ ] │
│ 229 │ │ │ return running_slurm_job_ids │
│ 230 │ │ │
│ ❱ 231 │ │ return _read_slurm_queue_inner() │
│ 232 │ │
│ 233 │ def _submit_job(self, job_command_list: _List[str]) -> int: │
│ 234 │ │ """ │
│ │
│ /home/nayan/Desktop/a3fe/a3fe/run/_utils.py:89 in newfn │
│ │
│ 86 │ │ │ attempt = 0 │
│ 87 │ │ │ while attempt < times: │
│ 88 │ │ │ │ try: │
│ ❱ 89 │ │ │ │ │ return func(*args, **kwargs) │
│ 90 │ │ │ │ except exceptions as e: │
│ 91 │ │ │ │ │ logger.error( │
│ 92 │ │ │ │ │ │ f"Exception thrown when attempting to run {func}, attempt " │
│ │
│ /home/nayan/Desktop/a3fe/a3fe/run/_virtual_queue.py:213 in _read_slurm_queue_inner │
│ │
│ 210 │ │ │ ] │
│ 211 │ │ │ │
│ 212 │ │ │ # Create a pipe for the first command │
│ ❱ 213 │ │ │ process = _subprocess.Popen(commands[0], stdout=_subprocess.PIPE) │
│ 214 │ │ │ │
│ 215 │ │ │ # Chain the commands │
│ 216 │ │ │ for cmd in commands[1:]: │
│ │
│ /home/nayan/miniconda3/envs/a3fe/lib/python3.12/subprocess.py:1026 in init
│ │
│ 1023 │ │ │ │ │ self.stderr = io.TextIOWrapper(self.stderr, │
│ 1024 │ │ │ │ │ │ │ encoding=encoding, errors=errors) │
│ 1025 │ │ │ │
│ ❱ 1026 │ │ │ self._execute_child(args, executable, preexec_fn, close_fds, │
│ 1027 │ │ │ │ │ │ │ │ pass_fds, cwd, env, │
│ 1028 │ │ │ │ │ │ │ │ startupinfo, creationflags, shell, │
│ 1029 │ │ │ │ │ │ │ │ p2cread, p2cwrite, │
│ │
│ /home/nayan/miniconda3/envs/a3fe/lib/python3.12/subprocess.py:1955 in _execute_child │
│ │
│ 1952 │ │ │ │ │ if errno_num != 0: │
│ 1953 │ │ │ │ │ │ err_msg = os.strerror(errno_num) │
│ 1954 │ │ │ │ │ if err_filename is not None: │
│ ❱ 1955 │ │ │ │ │ │ raise child_exception_type(errno_num, err_msg, err_filename) │
│ 1956 │ │ │ │ │ else: │
│ 1957 │ │ │ │ │ │ raise child_exception_type(errno_num, err_msg) │
│ 1958 │ │ │ │ raise child_exception_type(err_msg) │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
FileNotFoundError: [Errno 2] No such file or directory: 'squeue'

Plese help me to execute this tool inorder to estimate ABFB

@jmichel80
Copy link

hi @Dslab2025 - that's your problem, as the docs say you need to install SLURM before you can use a3fe.

@Dslab2025
Copy link
Author

thus slurm works on workstation? I dont have any idea, as some one told its only for Server or Cluster? Is that true?

@fjclark
Copy link
Collaborator

fjclark commented Jan 19, 2025

Hi @Dslab2025, you can set up SLURM on your workstation - you might find this guide helpful: https://signac.io/development/2020/06/26/local-SLURM-environment.html.

@fjclark
Copy link
Collaborator

fjclark commented Jan 23, 2025

Closing as this is due to lack of SLURM, but please feel free to get in contact if you have any issues with the software.

1 similar comment
@fjclark
Copy link
Collaborator

fjclark commented Jan 23, 2025

Closing as this is due to lack of SLURM, but please feel free to get in contact if you have any issues with the software.

@fjclark fjclark closed this as completed Jan 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
@jmichel80 @fjclark @Dslab2025 and others