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

Test with ExaModels #26

Open
jbcaillau opened this issue Aug 6, 2024 · 6 comments
Open

Test with ExaModels #26

jbcaillau opened this issue Aug 6, 2024 · 6 comments

Comments

@jbcaillau
Copy link
Member

@0Yassine0 @ocots check #25

@jbcaillau
Copy link
Member Author

jbcaillau commented Aug 6, 2024

Naïve try with julia -t 4 on an Inria cluster1.

@amontoison if you can run the code on aurora please (increase Nand) proceed 🥲

julia> include("goddard-exa.jl")
NLP + Ipopt :  91.587 ms (428357 allocations: 22.29 MiB)
NLP + MadNLP:  98.770 ms (479052 allocations: 69.30 MiB)
Exa + Ipopt :  44.883 ms (792 allocations: 81.62 KiB)
Exa + MadNLP:  57.040 ms (5516 allocations: 50.80 MiB)

NLP + Ipopt : Generic Execution stats
  status: first-order stationary
  objective value: -1.0125714090309206
  primal feasibility: 8.783421906466416e-10
  dual feasibility: 1.5628074497679174e-9
  solution: [1.0  2.8447284383565784e-40  1.0  0.9999813724318203  0.20197397954338486]
  multipliers: [3.942852127522442  0.14628571080470762  0.0541231604715201  3.9406167167698016  -0.08152196877705907]
  multipliers_L: [0.25059035470884994  0.25059035596800616  0.0  2.5059502143790325e-9  1.240706076116897e-8]
  multipliers_U: [0.0  2.505903309089731e-8  0.0  0.00013445442754716537  0.0]
  iterations: 18
  elapsed time: 0.092
  solver specific:
    real_time: 0.09275698661804199
    internal_msg: :Solve_Succeeded

NLP + MadNLP: "Execution stats: Optimal Solution Found (tol = 1.0e-08)."
Exa + Ipopt : Generic Execution stats
  status: first-order stationary
  objective value: -1.012571409018816
  primal feasibility: 1.8874651026964864e-10
  dual feasibility: 1.1131274941257247e-10
  solution: [0.20197397128380745  1.0  1.2694438541840876e-33  1.0  4.39107280547744e-6]
  multipliers: [-1.240703620864565e-8  4.193737933722494  0.40085780685347294  0.05360611481410709  0.08152196564186191]
  iterations: 18
  elapsed time: 0.049
  solver specific:
    real_time: 0.04976511001586914
    internal_msg: :Solve_Succeeded

Exa + MadNLP: "Execution stats: Optimal Solution Found (tol = 1.0e-08)."

Footnotes

  1. 40 CPUs (10 cores each), info below:
    model name : Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz
    stepping : 4
    microcode : 0x2006b06
    cpu MHz : 2200.000
    cache size : 14080 KB
    physical id : 0
    siblings : 20
    core id : 2
    cpu cores : 10

@amontoison
Copy link

amontoison commented Aug 6, 2024

@jbcaillau ExaModels.jl was developed for GPUs, I don't think that you will see a difference if you use miltiple threads.
Can you also test with one thread?

@jbcaillau
Copy link
Member Author

jbcaillau commented Aug 6, 2024

@amontoison I did, no change. again, at this step this is completely naive. just tried to follow hints below (from ExaModels doc):

the point with ExaModels is to use (i) multi-threaded CPUs and / or (ii) GPUs as documented here.

if you can trivially run the code to test speed up on GPU please let us know 🤞🏽

@amontoison
Copy link

amontoison commented Aug 6, 2024

I think that you need backend=CUDABackend() to easily test it on NVIDIA GPUs.

@jbcaillau
Copy link
Member Author

I think that you need backend=CUDABackend() to easily test it on NVIDIA GPUs.

@amontoison yes. just tested it on our Inria cluster. (need more time to eval performance.) check #25 (comment)

@jbcaillau
Copy link
Member Author

jbcaillau commented Aug 27, 2024

New run: #25 (comment)

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

2 participants