---
page_id: wsd-speaking-of-multi-threading-last-f4c77b18
type: context-page
schema_version: 1
template_id: discord-page
template_version: template-0.1.0
title: "Thread: speaking of multi-threading, last"
slug: wsd-speaking-of-multi-threading-last-f4c77b18
route: /evidence/i-information/general/threads/speaking-of-multi-threading-last
section: reference
access: public
summary: 9 Discord messages from ℹ️ - Information/general/threads/speaking-of-multi-threading-last.md.
status: published
asset_base: .
home_href: /
md_url: /evidence/i-information/general/threads/speaking-of-multi-threading-last.md
toc_enabled: true
talk_enabled: false
agent_view_enabled: true
copy_buttons_enabled: true
footer_enabled: true
search_indexed: true
tags: [discord, wafer-space, archive]
last_updated: 2026-08-19
talk_url: /evidence/i-information/general/threads/speaking-of-multi-threading-last.talk.md
talk_route: /evidence/i-information/general/threads/speaking-of-multi-threading-last/talk
---

# Thread: speaking of multi-threading, last

Category: **ℹ️ - Information**
Parent channel: **#general**
Thread ID: `1490920503991337082`

Messages: **9**

## message-1490971812601794692

**2026-04-07T07:09:41.041+00:00 — Leo Moser (mole99) (@mole99)**

- Message ID: `1490971812601794692`
- Author ID: `323371864074485771`
- Nickname: Leo Moser (mole99)
- User name: mole99
- Type: `21`
- Discord message: https://discord.com/channels/1361349522684510449/1490920503991337082/1490971812601794692
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/general/speaking-of-multi-threading-last/2026-04/2026-04.json
- Archive source: https://discord.wafer.space/wafer-space/Voice%20Channels/general/speaking-of-multi-threading-last/2026-04/2026-04.json

**Reply/reference**
- https://discord.com/channels/1361349522684510449/1361349523724570941/1490920503991337082
<details>
<summary>Reference data</summary>

```json
{
  "channelId": "1361349523724570941",
  "guildId": "1361349522684510449",
  "messageId": "1490920503991337082"
}
```

</details>

**Content**

```text

```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-04_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {
    "mentions": [
      {
        "avatarUrl": "2026-04_media/8d8c1d8b8ad51d6cdb1a47512c39b297-42908.png",
        "color": null,
        "discriminator": "0000",
        "id": "384390069412429834",
        "isBot": false,
        "name": "polyfractal",
        "nickname": "BreakingTaps",
        "roles": []
      }
    ]
  }
}
```

</details>

---

## message-1490971821263294586

**2026-04-07T07:09:43.106+00:00 — Leo Moser (mole99) (@mole99)**

- Message ID: `1490971821263294586`
- Author ID: `323371864074485771`
- Nickname: Leo Moser (mole99)
- User name: mole99
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1490920503991337082/1490971821263294586
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/general/speaking-of-multi-threading-last/2026-04/2026-04.json
- Archive source: https://discord.wafer.space/wafer-space/Voice%20Channels/general/speaking-of-multi-threading-last/2026-04/2026-04.json

**Content**

```text
Would you be willing to open an issue, or perhaps even contribute to LibreLane?

If enabling certain options would provide some speed improvements, that would definitely be appreciated. At first glance, I didn't see anything obvious in [Gate Resizer](https://openroad.readthedocs.io/en/latest/main/src/rsz/README.html).
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-04_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {}
}
```

</details>

---

## message-1491096947992559652

**2026-04-07T15:26:55.643+00:00 — BreakingTaps (@polyfractal)**

- Message ID: `1491096947992559652`
- Author ID: `384390069412429834`
- Nickname: BreakingTaps
- User name: polyfractal
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1490920503991337082/1491096947992559652
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/general/speaking-of-multi-threading-last/2026-04/2026-04.json
- Archive source: https://discord.wafer.space/wafer-space/Voice%20Channels/general/speaking-of-multi-threading-last/2026-04/2026-04.json

**Content**

```text
ahhh sorry, that's what I get for responding without looking at my code changes.

I meant OpenSTA not resizer, my bad! I can disentangle the change from the rest of my stuff and send a PR, was a minor tweak to openroad.py in the OpenSTAStep.

(also added a blanket thread parameter since it looked like some other steps could take threads but I don't think that had much effect and is probably not very principled. Might have been redundant too)
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-04_media/8d8c1d8b8ad51d6cdb1a47512c39b297-42908.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1491134544697364631

**2026-04-07T17:56:19.396+00:00 — Leo Moser (mole99) (@mole99)**

- Message ID: `1491134544697364631`
- Author ID: `323371864074485771`
- Nickname: Leo Moser (mole99)
- User name: mole99
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1490920503991337082/1491134544697364631
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/general/speaking-of-multi-threading-last/2026-04/2026-04.json
- Archive source: https://discord.wafer.space/wafer-space/Voice%20Channels/general/speaking-of-multi-threading-last/2026-04/2026-04.json

**Content**

```text
Right! Yes, OpenSTA added native multithreading in its recent 3.0 release afaik.

Donn added [a compatibility layer](https://github.com/librelane/librelane/pull/881) to LibreLane, so we can continue using the same scripts for the LibreLane 3.0 release.

Currently, LibreLane spawns an OpenSTA process for each corner using the [MultiCornerSTA](https://github.com/librelane/librelane/blob/b1095babdafd1d0ceb8182b39a2485989903a81c/librelane/steps/openroad.py#L710) class.
This was great at the time and definitely better than running each corner sequentially ^^
However, if you only have three corners, like on gf180mcu, there isn't much to be gained.

Doing multithreading directly in OpenSTA is a major improvement, as many more threads can probably be used in parallel this way. It also means that we only need to keep the database in memory once, reducing the memory footprint and (likely) increasing cache hits. So running OpenSTA multithreaded is definitely desired :)
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-04_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {}
}
```

</details>

---

## message-1491134768006566139

**2026-04-07T17:57:12.637+00:00 — Leo Moser (mole99) (@mole99)**

- Message ID: `1491134768006566139`
- Author ID: `323371864074485771`
- Nickname: Leo Moser (mole99)
- User name: mole99
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1490920503991337082/1491134768006566139
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/general/speaking-of-multi-threading-last/2026-04/2026-04.json
- Archive source: https://discord.wafer.space/wafer-space/Voice%20Channels/general/speaking-of-multi-threading-last/2026-04/2026-04.json

**Content**

```text
How did you modify LibreLane to run OpenSTA multithreaded? You should probably make sure that OpenSTA is only spawned once. Otherwise, you could end up with more software threads than hardware threads.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-04_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {}
}
```

</details>

---

## message-1491134878035476520

**2026-04-07T17:57:38.87+00:00 — Leo Moser (mole99) (@mole99)**

- Message ID: `1491134878035476520`
- Author ID: `323371864074485771`
- Nickname: Leo Moser (mole99)
- User name: mole99
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1490920503991337082/1491134878035476520
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/general/speaking-of-multi-threading-last/2026-04/2026-04.json
- Archive source: https://discord.wafer.space/wafer-space/Voice%20Channels/general/speaking-of-multi-threading-last/2026-04/2026-04.json

**Content**

```text
By default, each step should try to use up to `--jobs` threads if possible. This is done [here](https://github.com/librelane/librelane/blob/b1095babdafd1d0ceb8182b39a2485989903a81c/librelane/steps/klayout.py#L512), for example. As you can see, each step should also have local overrides e.g. in case running DRC with all available threads exhausts the system memory.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-04_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {}
}
```

</details>

---

## message-1491478334406791248

**2026-04-08T16:42:25.25+00:00 — BreakingTaps (@polyfractal)**

- Message ID: `1491478334406791248`
- Author ID: `384390069412429834`
- Nickname: BreakingTaps
- User name: polyfractal
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1490920503991337082/1491478334406791248
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/general/speaking-of-multi-threading-last/2026-04/2026-04.json
- Archive source: https://discord.wafer.space/wafer-space/Voice%20Channels/general/speaking-of-multi-threading-last/2026-04/2026-04.json

**Content**

```text
ahh good to know! I was only running small tests, will rerun with my full design to see if I accidentally blow up the machine 🙂

> How did you modify LibreLane to run OpenSTA multithreaded?

IIRC I was just passing in `-threads` when invoking OpenSTA process. It was a very small / targeted change
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-04_media/8d8c1d8b8ad51d6cdb1a47512c39b297-42908.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "slight_smile",
        "id": "",
        "imageUrl": "2026-04_media/1f642-83E8A.svg",
        "isAnimated": false,
        "name": "🙂"
      }
    ]
  }
}
```

</details>

---

## message-1491478409988018336

**2026-04-08T16:42:43.27+00:00 — BreakingTaps (@polyfractal)**

- Message ID: `1491478409988018336`
- Author ID: `384390069412429834`
- Nickname: BreakingTaps
- User name: polyfractal
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1490920503991337082/1491478409988018336
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/general/speaking-of-multi-threading-last/2026-04/2026-04.json
- Archive source: https://discord.wafer.space/wafer-space/Voice%20Channels/general/speaking-of-multi-threading-last/2026-04/2026-04.json

**Content**

```text
will doublecheck when i get home
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-04_media/8d8c1d8b8ad51d6cdb1a47512c39b297-42908.png",
    "discriminator": "0000",
    "isBot": false
  },
  "message": {}
}
```

</details>

---

## message-1491699940169220118

**2026-04-09T07:23:00.181+00:00 — Leo Moser (mole99) (@mole99)**

- Message ID: `1491699940169220118`
- Author ID: `323371864074485771`
- Nickname: Leo Moser (mole99)
- User name: mole99
- Type: `Default`
- Discord message: https://discord.com/channels/1361349522684510449/1490920503991337082/1491699940169220118
- Archive source: https://discord.wafer.space/wafer-space/%E2%84%B9%EF%B8%8F%20-%20Information/general/speaking-of-multi-threading-last/2026-04/2026-04.json
- Archive source: https://discord.wafer.space/wafer-space/Voice%20Channels/general/speaking-of-multi-threading-last/2026-04/2026-04.json

**Content**

```text
Haha, it won't blow up the machine, but it could potentially slow things down because of all the context switching 😁

Good to know that's all that's needed. So, we just need to disable the explicit multiprocessing in LibreLane and enable `-threads`.
```

<details>
<summary>Other message metadata</summary>

```json
{
  "author": {
    "avatarUrl": "2026-04_media/3c7c17f3225f6e56f4dccd83f14383f2-73F83.png",
    "discriminator": "0000",
    "isBot": false,
    "roles": [
      {
        "color": null,
        "id": "1423020172595298314",
        "name": "Mod",
        "position": 4
      }
    ]
  },
  "message": {
    "inlineEmojis": [
      {
        "code": "grin",
        "id": "",
        "imageUrl": "2026-04_media/1f601-4E9BD.svg",
        "isAnimated": false,
        "name": "😁"
      }
    ]
  }
}
```

</details>

---
