PaCoRe: Learning to Scale Test-Time Compute with Parallel Coordinated Reasoning
Python
341
11 commits
updated Feb 5, 2026
We introduce PaCoRe (Parallel Coordinated Reasoning), a framework that shifts the driver of inference from sequential depth to coordinated parallel breadth, breaking the model context limitation and massively scaling test time compute:
Trained via large-scale, outcome-based reinforcement learning, PaCoRe masters the Reasoning Synthesis capabilities required to reconcile diverse parallel insights.
The approach yields strong improvements across diverse domains, and notably pushes reasoning beyond frontier systems in mathematics: an 8B model reaches 94.5% on HMMT 2025, surpassing GPT-5’s 93.2% by scaling effective TTC to roughly two million tokens.
We open-source model checkpoints, training data, and the full inference pipeline to accelerate follow-up work!
Figure 1 | Parallel Coordinated Reasoning (PaCoRe) performance. Left: On HMMT 2025, PaCoRe-8B demonstrates remarkable test-time scaling, yielding steady gains and ultimately surpassing GPT-5. Right: On LiveCodeBench, the RLVR-8B model fails to leverage increased test-time compute, while PaCoRe-8B model effectively unlocks substantial gains as the test-time compute increases.
Figure 2 | PaCoRe Training dynamics. Left panels: The Training Reward and Response Length steadily increase, demonstrating the training stability and effectiveness. Right panels: Evaluation on HMMT 2025 and LiveCodeBench (2408-2505). Performance is reported using single round coordinated reasoning in PaCoRe inference setting with $\vec{K} = [16]$.
[2026/02/03] 🚀 PaCoRe Server is now open source!
[2025/12/09] We are excited to release the PaCoRe-8B ecosystem:
opensource_math, public_mathcontest, synthetic_math and code:
| AIME 2025 | HMMT 2025 | IMO AnswerBench | Apex | LiveCodeBench | HLEtext | MultiChallenge | |
|---|---|---|---|---|---|---|---|
| GPT-5 | 93.5 (13k) | 93.2 (16k) | 72.9 (26k) | 1.0 (33k) | 83.5 (13k) | 26.0 (14k) | 71.1 (5.0k) |
| Qwen3-235B-Thinking | 91.6 (26k) | 82.3 (32k) | 71.7 (34k) | 3.3 (46k) | 74.5 (21k) | 18.2 (23k) | 60.3 (1.6k) |
| GLM-4.6 | 92.3 (20k) | 88.7 (25k) | 73.5 (37k) | 0.7 (53k) | 79.5 (19k) | 17.2 (21k) | 54.9 (2.2k) |
| DeepSeek-v3.1* | 90.2 (16k) | 86.1 (20k) | 63.0 (27k) | 1.4 (36k) | 74.9 (11k) | 19.3 (18k) | 54.4 (1.1k) |
| Kimi-K2-Thinking | 95.3 (25k) | 86.5 (33k) | 76.5 (44k) | 0.8 (60k) | 79.2 (25k) | 23.9 (29k) | 66.4 (1.6k) |
| RLVR-8B | 84.1 (50k) | 75.4 (48k) | 64.6 (56k) | 0.0 (65k) | 70.6 (34k) | 9.3 (35k) | 33.3 (1.7k) |
| PaCoRe-8B (low) | 89.7 (255k) | 88.1 (243k) | 76.1 (306k) | 0.7 (362k) | 75.8 (188k) | 13.0 (196k) | 41.8 (13k) |
| PaCoRe-8B (medium) | 92.5 (908k) | 92.9 (869k) | 77.3 (1080k) | 1.4 (1280k) | 76.7 (659k) | 14.6 (694k) | 45.7 (45k) |
| PaCoRe-8B (high) | 93.7 (1873k) | 94.5 (1796k) | 78.4 (2258k) | 2.3 (2679k) | 78.2 (1391k) | 16.0 (1451k) | 48.0 (95.3k) |
Table 1 | For each benchmark, we report accuracy together with total TTC (in thousands). For Low, Medium, and High, we apply the inference trajectory configuration as $\vec{K}=[4]$, $[16]$, and $[32, 4]$ separately.* DeepSeek-V3.1 refers to the Terminus version.
The data is provided as a list[dict], where each entry represents a training instance:
conversation: The original problem/prompt messages.responses: A list of cached generated responses (trajectories). These serve as the input messages ($M$) used during PaCoRe training.ground_truth: The verifiable answer used for correctness evaluation.You can directly use vllm serve to serve the model! More inference details of PaCoRe will be handled in Inference Pipeline.

Figure 3 | Inference pipeline of PaCoRe. Each round launches broad parallel exploration, compacts the resulting trajectories into compacted messages, and feeds these messages together with the question forward to coordinate the next round. Repeating this process $\hat{R}$ times yields multi-million-token effective TTC while respecting fixed context limits, with the final compacted message serving as the system’s answer.
We will explain the PaCoRe inference pipeline in this section.
You can run PaCoRe as an OpenAI-compatible server that proxies requests through any upstream LLM provider (vLLM, OpenRouter, etc.) while applying the PaCoRe multi-round parallel reasoning pipeline.
Example: Using OpenRouter as the upstream provider
First, install this package:
pip install -e .
Then do the following steps:
export OPENROUTER_API_KEY='sk-or-...'
python playground/example_pacore_server_openrouter_step35_flash.py
import requests
import json
messages = [
{"role": "user", "content": "Prove that there are infinitely many prime numbers."}
]
response = requests.post(
url="http://localhost:8000/v1/chat/completions",
headers={"Content-Type": "application/json"},
data=json.dumps({
"model": "stepfun/step-3.5-flash:free",
"messages": messages,
"reasoning": {"enabled": True}
})
)
result = response.json()
print(result["choices"][0]["message"]["content"])
Configuration Options
The PaCoRe server can be configured via environment variables:
| Variable | Description | Default |
|---|---|---|
PACORE_UPSTREAM_API_BASE | Upstream LLM endpoint URL | http://localhost:8000/v1/chat/completions |
PACORE_HOST | Server host address | 0.0.0.0 |
PACORE_PORT | Server port | 8000 |
PACORE_UPSTREAM_TIMEOUT_SECONDS | Request timeout | 7200 |
PACORE_UPSTREAM_RETRY_TIMES | Number of retries | 5 |
Customizing the Server
You can also create your own server by extending the Exp base class:
from pacore.server.base_exp import ChatCompletionRequest, Exp
class MyCustomServer(Exp):
upstream_api_base = "https://your-api-endpoint.com/v1/chat/completions"
num_responses_per_round = [16] # PaCoRe breadth configuration
def get_upstream_extra_headers(self, request: ChatCompletionRequest) -> dict[str, str]:
return {"Authorization": f"Bearer {your_api_key}"}
if __name__ == "__main__":
MyCustomServer().run()
The num_responses_per_round controls the PaCoRe inference trajectory:
[4] → PaCoRe-low[16] → PaCoRe-medium[32, 4] → PaCoRe-highYou can also run some data in a batch. In this case, we assume you use vllm serve the model in your localhost with PaCoRe-8B model.
Next, you can run our example inference code with PaCoRe-low inference setting:
python playground/example_batch_inference_pacore_low_1210.py
And then you can see dumped results in outputs/example_batch_inference_pacore_low_1210/results.jsonl!
We are just scratching the surface of parallel coordinated reasoning. Our roadmap includes:
We are currently seeking self-motivated engineers and reseachers. If you are interested in our project and would like to contribute to the reasoner scale-up all the way to AGI, please feel free to reach out to us at hanqer@stepfun.com
@misc{pacore2025,
title={PaCoRe: Learning to Scale Test-Time Compute with Parallel Coordinated Reasoning},
author={Jingcheng Hu and Yinmin Zhang and Shijie Shang and Xiaobo Yang and Yue Peng and Zhewei Huang and Hebin Zhou and Xin Wu and Jie Cheng and Fanqi Wan and Xiangwen Kong and Chengyuan Yao and Kaiwen Yan and Ailin Huang and Hongyu Zhou and Qi Han and Zheng Ge and Daxin Jiang and Xiangyu Zhang and Heung-Yeung Shum},
year={2026},
eprint={2601.05593},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2601.05593},
}
11 commits
Python
100.0%
PaCoRe: Learning to Scale Test-Time Compute with Parallel Coordinated Reasoning
Python
341
11 commits
updated Feb 5, 2026
We introduce PaCoRe (Parallel Coordinated Reasoning), a framework that shifts the driver of inference from sequential depth to coordinated parallel breadth, breaking the model context limitation and massively scaling test time compute:
Trained via large-scale, outcome-based reinforcement learning, PaCoRe masters the Reasoning Synthesis capabilities required to reconcile diverse parallel insights.
The approach yields strong improvements across diverse domains, and notably pushes reasoning beyond frontier systems in mathematics: an 8B model reaches 94.5% on HMMT 2025, surpassing GPT-5’s 93.2% by scaling effective TTC to roughly two million tokens.
We open-source model checkpoints, training data, and the full inference pipeline to accelerate follow-up work!
Figure 1 | Parallel Coordinated Reasoning (PaCoRe) performance. Left: On HMMT 2025, PaCoRe-8B demonstrates remarkable test-time scaling, yielding steady gains and ultimately surpassing GPT-5. Right: On LiveCodeBench, the RLVR-8B model fails to leverage increased test-time compute, while PaCoRe-8B model effectively unlocks substantial gains as the test-time compute increases.
Figure 2 | PaCoRe Training dynamics. Left panels: The Training Reward and Response Length steadily increase, demonstrating the training stability and effectiveness. Right panels: Evaluation on HMMT 2025 and LiveCodeBench (2408-2505). Performance is reported using single round coordinated reasoning in PaCoRe inference setting with $\vec{K} = [16]$.
[2026/02/03] 🚀 PaCoRe Server is now open source!
[2025/12/09] We are excited to release the PaCoRe-8B ecosystem:
opensource_math, public_mathcontest, synthetic_math and code:
| AIME 2025 | HMMT 2025 | IMO AnswerBench | Apex | LiveCodeBench | HLEtext | MultiChallenge | |
|---|---|---|---|---|---|---|---|
| GPT-5 | 93.5 (13k) | 93.2 (16k) | 72.9 (26k) | 1.0 (33k) | 83.5 (13k) | 26.0 (14k) | 71.1 (5.0k) |
| Qwen3-235B-Thinking | 91.6 (26k) | 82.3 (32k) | 71.7 (34k) | 3.3 (46k) | 74.5 (21k) | 18.2 (23k) | 60.3 (1.6k) |
| GLM-4.6 | 92.3 (20k) | 88.7 (25k) | 73.5 (37k) | 0.7 (53k) | 79.5 (19k) | 17.2 (21k) | 54.9 (2.2k) |
| DeepSeek-v3.1* | 90.2 (16k) | 86.1 (20k) | 63.0 (27k) | 1.4 (36k) | 74.9 (11k) | 19.3 (18k) | 54.4 (1.1k) |
| Kimi-K2-Thinking | 95.3 (25k) | 86.5 (33k) | 76.5 (44k) | 0.8 (60k) | 79.2 (25k) | 23.9 (29k) | 66.4 (1.6k) |
| RLVR-8B | 84.1 (50k) | 75.4 (48k) | 64.6 (56k) | 0.0 (65k) | 70.6 (34k) | 9.3 (35k) | 33.3 (1.7k) |
| PaCoRe-8B (low) | 89.7 (255k) | 88.1 (243k) | 76.1 (306k) | 0.7 (362k) | 75.8 (188k) | 13.0 (196k) | 41.8 (13k) |
| PaCoRe-8B (medium) | 92.5 (908k) | 92.9 (869k) | 77.3 (1080k) | 1.4 (1280k) | 76.7 (659k) | 14.6 (694k) | 45.7 (45k) |
| PaCoRe-8B (high) | 93.7 (1873k) | 94.5 (1796k) | 78.4 (2258k) | 2.3 (2679k) | 78.2 (1391k) | 16.0 (1451k) | 48.0 (95.3k) |
Table 1 | For each benchmark, we report accuracy together with total TTC (in thousands). For Low, Medium, and High, we apply the inference trajectory configuration as $\vec{K}=[4]$, $[16]$, and $[32, 4]$ separately.* DeepSeek-V3.1 refers to the Terminus version.
The data is provided as a list[dict], where each entry represents a training instance:
conversation: The original problem/prompt messages.responses: A list of cached generated responses (trajectories). These serve as the input messages ($M$) used during PaCoRe training.ground_truth: The verifiable answer used for correctness evaluation.You can directly use vllm serve to serve the model! More inference details of PaCoRe will be handled in Inference Pipeline.

Figure 3 | Inference pipeline of PaCoRe. Each round launches broad parallel exploration, compacts the resulting trajectories into compacted messages, and feeds these messages together with the question forward to coordinate the next round. Repeating this process $\hat{R}$ times yields multi-million-token effective TTC while respecting fixed context limits, with the final compacted message serving as the system’s answer.
We will explain the PaCoRe inference pipeline in this section.
You can run PaCoRe as an OpenAI-compatible server that proxies requests through any upstream LLM provider (vLLM, OpenRouter, etc.) while applying the PaCoRe multi-round parallel reasoning pipeline.
Example: Using OpenRouter as the upstream provider
First, install this package:
pip install -e .
Then do the following steps:
export OPENROUTER_API_KEY='sk-or-...'
python playground/example_pacore_server_openrouter_step35_flash.py
import requests
import json
messages = [
{"role": "user", "content": "Prove that there are infinitely many prime numbers."}
]
response = requests.post(
url="http://localhost:8000/v1/chat/completions",
headers={"Content-Type": "application/json"},
data=json.dumps({
"model": "stepfun/step-3.5-flash:free",
"messages": messages,
"reasoning": {"enabled": True}
})
)
result = response.json()
print(result["choices"][0]["message"]["content"])
Configuration Options
The PaCoRe server can be configured via environment variables:
| Variable | Description | Default |
|---|---|---|
PACORE_UPSTREAM_API_BASE | Upstream LLM endpoint URL | http://localhost:8000/v1/chat/completions |
PACORE_HOST | Server host address | 0.0.0.0 |
PACORE_PORT | Server port | 8000 |
PACORE_UPSTREAM_TIMEOUT_SECONDS | Request timeout | 7200 |
PACORE_UPSTREAM_RETRY_TIMES | Number of retries | 5 |
Customizing the Server
You can also create your own server by extending the Exp base class:
from pacore.server.base_exp import ChatCompletionRequest, Exp
class MyCustomServer(Exp):
upstream_api_base = "https://your-api-endpoint.com/v1/chat/completions"
num_responses_per_round = [16] # PaCoRe breadth configuration
def get_upstream_extra_headers(self, request: ChatCompletionRequest) -> dict[str, str]:
return {"Authorization": f"Bearer {your_api_key}"}
if __name__ == "__main__":
MyCustomServer().run()
The num_responses_per_round controls the PaCoRe inference trajectory:
[4] → PaCoRe-low[16] → PaCoRe-medium[32, 4] → PaCoRe-highYou can also run some data in a batch. In this case, we assume you use vllm serve the model in your localhost with PaCoRe-8B model.
Next, you can run our example inference code with PaCoRe-low inference setting:
python playground/example_batch_inference_pacore_low_1210.py
And then you can see dumped results in outputs/example_batch_inference_pacore_low_1210/results.jsonl!
We are just scratching the surface of parallel coordinated reasoning. Our roadmap includes:
We are currently seeking self-motivated engineers and reseachers. If you are interested in our project and would like to contribute to the reasoner scale-up all the way to AGI, please feel free to reach out to us at hanqer@stepfun.com
@misc{pacore2025,
title={PaCoRe: Learning to Scale Test-Time Compute with Parallel Coordinated Reasoning},
author={Jingcheng Hu and Yinmin Zhang and Shijie Shang and Xiaobo Yang and Yue Peng and Zhewei Huang and Hebin Zhou and Xin Wu and Jie Cheng and Fanqi Wan and Xiangwen Kong and Chengyuan Yao and Kaiwen Yan and Ailin Huang and Hongyu Zhou and Qi Han and Zheng Ge and Daxin Jiang and Xiangyu Zhang and Heung-Yeung Shum},
year={2026},
eprint={2601.05593},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2601.05593},
}
11 commits
Python
100.0%