parallel computing

Unknown
edited February 2023 in Community Q&A

Hi experts,

I have a hyperworks cfd problem named problem_one.hmlets say its a simple flow over a cylindrical surface problem. I want to run multiple simulations of same single problem but with different velocitites (1 m/s, 2 m/s, 3 m/s, etc).

Is it possible for me to run the problem in parallel (all three problems at the same time in a 36 core machine with 12 cores for each problem)? I can manually copy input files and edit the inlet velocities accordingly. But do I need separate files for geometry, .hm file, mesh.dir for three different problems?

In other words, how do I run a simulation in parallel but with different condtions? Anyone has experience with that?

Thanks!

 

Answers

  • acupro
    acupro
    Altair Employee
    edited October 2022

    If you want to run three different jobs at the same time, it's best to have three separate directories - one for each job.  The solver itself only needs the input file and the mesh directory.  So you can write three times from the same .hm file - once for each setup - each to a different directory.  If you're on Linux, you can create soft-links to a single MESH.DIR for the mesh, so it's only in one of the directories.  I don't know if you can do the same on Linux.

    Bottom line - you probably do not want to run three separate jobs from the same directory.  Maybe if you use a different problem name for each - but I would typically not recommend doing so.

  • ydigit
    ydigit
    Altair Employee
    edited February 2023

    If you are using Windows, following can be your .bat file to execute jobs one after the other. You will need to invoke this .bat file from AcuSolve Cmd Prompt and not just double click on it. 

    ##### for sequential runs, with 36 cores####

    cd D:\test\pipe1
    call acuRun -pb pipe1 -np 36
    call acuTrans  -to table -pb conj_pipe -osi -osis "inlet","outlet" -osiv temperature -ts L
    cd D:\test\pipe2
    call acuRun -pb pipe2 -np 36

    cd D:\test\pipe3
    call acuRun -pb pipe3 -np 36

    ##### for sequential runs####

     

    ...

    ...

    For running jobs in parallel (12 cores *3 jobs). The main difference is the "call" command in DOS/Windows. This will let jobs finish, before moving to the next command. 

    ################

    cd D:\test\pipe1
    acuRun -pb pipe1 -np 12
    cd D:\test\pipe2
    acuRun -pb pipe2 -np 12

    cd D:\test\pipe3
    acuRun -pb pipe3 -np 12

    #####

     

  • ydigit
    ydigit
    Altair Employee
    edited February 2023

    If you specify your OS, windows or Linux, it might be easier to suggest a solution. 

  • Unknown
    edited February 2023

    If you are using Windows, following can be your .bat file to execute jobs one after the other. You will need to invoke this .bat file from AcuSolve Cmd Prompt and not just double click on it. 

    ##### for sequential runs, with 36 cores####

    cd D:\test\pipe1
    call acuRun -pb pipe1 -np 36
    call acuTrans  -to table -pb conj_pipe -osi -osis "inlet","outlet" -osiv temperature -ts L
    cd D:\test\pipe2
    call acuRun -pb pipe2 -np 36

    cd D:\test\pipe3
    call acuRun -pb pipe3 -np 36

    ##### for sequential runs####

     

    ...

    ...

    For running jobs in parallel (12 cores *3 jobs). The main difference is the "call" command in DOS/Windows. This will let jobs finish, before moving to the next command. 

    ################

    cd D:\test\pipe1
    acuRun -pb pipe1 -np 12
    cd D:\test\pipe2
    acuRun -pb pipe2 -np 12

    cd D:\test\pipe3
    acuRun -pb pipe3 -np 12

    #####

     

    Thank you.

  • Unknown
    edited February 2023

    If you specify your OS, windows or Linux, it might be easier to suggest a solution. 

    I am using Linux OS.