小编Bi0*_*max的帖子

docker --cache-from 与 BUILDKIT_INLINE_CACHE 不是每两次都工作

我正在尝试为我的 CI/CD 过程利用 BUILDKIT for Docker 的缓存/拉取系统。但它没有按预期工作。
我创建了一个虚拟的本地示例(但同样的情况也发生在我的 CI 系统 - AWS CodePipeline,以及 DockerHub 和 AWS ECR 中)。Dockerfile:

# base image
FROM python:3.7-slim

# set working directory
WORKDIR /usr/src/app

# add and install requirements
RUN pip install --upgrade pip
COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip $PIP_PROXY install --no-cache-dir --compile -r requirements.txt

RUN echo 123
# add app
COPY ./run_test.py /usr/src/app/run_test.py

# run server
CMD ["python", "run_test.py"]
Run Code Online (Sandbox Code Playgroud)

run_test.py 实际上并不有趣,但这里是代码以防万一:

import requests
import time

while True:
    time.sleep(1)
    print(requests)
Run Code Online (Sandbox Code Playgroud)

您还需要requirements.txt在同一文件夹中创建一个空文件。
事先,我导出了两个环境变量:

export …
Run Code Online (Sandbox Code Playgroud)

caching docker docker-registry

12
推荐指数
1
解决办法
2508
查看次数

带有 Python API 的 CPLEX - 如何加快模型制定速度?

我转向 CPLEX,因为我有一个很大的线性问题需要解决。
如果我们使用scipy.optimize.linprog表示法:

最小化:c^T * x
服从:A_ub * x <= b_ub 且 A_eq * x == b_eq,

那么我的A_ub矩阵的形状大致为 (20000, 10000):20000 个约束,10000 个变量。

使用 numpy 构造矩阵A_ub、A_eq和向量c、b_ub、b_eq非常快。
但从中创建 CPLEX 问题大约需要 30 秒(这在我的情况下是不可接受的)。发生这种情况是因为他们的 Python API 无法将矩阵作为输入(至少在测试不同场景几天后我找不到这样的功能)。
创建问题的唯一方法是逐列或逐行构造它,如下所示:

problem = cplex.Cplex()
problem.set_problem_type(problem.problem_type.LP)
problem.objective.set_sense(problem.objective.sense.minimize)
problem.variables.add(obj=c)

n_constraints, n_vars = A_ub.shape
index = list(range(n_vars))
list_rhs = list(b_ub)
# for each row (constraint) create a SparsePair instance
sparse_pairs = [cplex.SparsePair(ind=index, val=A_ub[i]) for i in range(n_constraints)]

# this piece takes 30 seconds …
Run Code Online (Sandbox Code Playgroud)

python cplex

4
推荐指数
1
解决办法
1677
查看次数

标签 统计

caching ×1

cplex ×1

docker ×1

docker-registry ×1

python ×1