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

Routing is slow, multi-threading could potentially help #289

Open
L1uTongweiNewAccount opened this issue Mar 26, 2024 · 9 comments
Open

Comments

@L1uTongweiNewAccount
Copy link

Please provide as many details as you can

  • What version of freerouting are you using?
    v1.9.0 (build date: 2023-10-30)
  • On what platform did you run it? Windows, Linux, MacOS? 32-bit or 64-bit?
    Windows 64-bit
  • What EDA do you use? KiCad, KiCad with freerouting plugin, EAGLE, EasyEDA, other? What is its exact version?
    EasyEDA
  • What types of files are you working with? Can you attach the project files (.pro, .kicad_pcb, etc) or the exported DSN file?
    the exported DSN file
  • Did you use any command line arguments?
    no, just the shortcut by freerouting
  • Can you post a screenshot of the problem?
    屏幕截图 2024-03-26 182045
    屏幕截图 2024-03-26 182110
  • Can you include the latest, related log entries from the .log file?
    no
  • Please list the detailed steps to reproduce the problem
    just start routing
  • What would you expect freerouting to do in this situation?
    optimize the code of routing.
    Look the pictures above here. It just use the 11% of CPU, and it's not enough.
    We need use multi-process to optimize it. If we can rewite it by C++ and make an assembler optimize, it's better.
    After all, I need 100% of CPU used to speed my process, because it's really slow with 1000+ network.
  • Is fixing this issue critical for your work?
    yes, a bit.
@andrasfuchs
Copy link
Collaborator

Hi @L1uTongweiNewAccount , thank you for the report!

Could you provide your big DSN file? I would need to investigate the issue further, because there is a chance that the first stage (auto-router) works, but the second stage (router optimizer) gets stuck.

You can also send it to me to info@freerouting.app, if you don't want to attach it here.

@andrasfuchs andrasfuchs changed the title We may need a optimize of freerouting! Routing is slow, multi-threading could potentially help Apr 3, 2024
@andrasfuchs andrasfuchs added this to To do in Freerouting Project Board via automation Apr 3, 2024
@andrasfuchs andrasfuchs added this to the Future milestone Apr 3, 2024
@L1uTongweiNewAccount
Copy link
Author

@andrasfuchs Fine, here is it!
Autorouter_PCB_FHT-VGA_2024-03-25.txt

Autorouter_PCB_FHT-8086_2024-03-08.txt

Of course, you should change it to .dsn because i can't upload .dsn files. And they are meaningless after i found design errors in them... But they are good examples for test!

Thanks!

@L1uTongweiNewAccount
Copy link
Author

L1uTongweiNewAccount commented Apr 4, 2024

And if i think routing optimizer is slow, i can stop it. but i cannot export .ses with no routing error because it has not been done.

I think we can have a option to skip optimizer, and keep the integrality of it.

@andrasfuchs
Copy link
Collaborator

Excellent, thank you @L1uTongweiNewAccount!

Optimizer can be disabled, but the setting isn't easy to find (I will improve the UI/UX soon):
image

image

Up in the menu, Settings, Auto-router, remove the check from the "Optimization".

@L1uTongweiNewAccount
Copy link
Author

Thanks a lot!

andrasfuchs added a commit that referenced this issue Apr 5, 2024
@andrasfuchs
Copy link
Collaborator

I can confirm that running the auto-router with your VGA file needed me 2.5GB of RAM and 4 hours 46 minutes.
Both seem unreasonably high, so this needs some investigation.

Thank you again for the files, they help a lot with the testing!

I don't think I will be able to fix this just yet, but I'll look into this after I get the new scoring system in place.

@EasyEDA2021
Copy link

Excellent, thank you @L1uTongweiNewAccount!

Optimizer can be disabled, but the setting isn't easy to find (I will improve the UI/UX soon): image

image

Up in the menu, Settings, Auto-router, remove the check from the "Optimization".

Hi, where can I download the v2.0 snapshot? thanks

@andrasfuchs
Copy link
Collaborator

The current snapshot version is available here: https://github.com/freerouting/freerouting/releases/tag/SNAPSHOT

@L1uTongweiNewAccount
Copy link
Author

I am thinking that if we can divide the board into some parts and alloc them to some defferent threads, and link them in the end.

I'm not sure how to divide them, and how to link them together. But I think a big PCB can be Recursively divided.

Will this idea helps to you? @andrasfuchs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

3 participants