跳转至

BASELINE — Synopsys 项目根(稳定层)

稳定层:换 cell / 换项目 / 下个会话仍成立的环境事实与机制陷阱。动态快照见 docs/HANDOFF.md;工程全景与任务路由见 docs/PROJECT-MAP.md。 2026-10-08 建立:自 docs/HANDOFF.md 拆出稳定层(环境事实 / 机制陷阱与红线 / 命令速查 / 跨项目关联 / 文档地图)。

1. 环境事实

  • 操作机 = 本机(Ubuntu 24.04.3,NFS server + KVM 宿主,192.168.31.249)。
  • 六台 work = KVM 虚机:.18/.19/.20(slurm)、.25/.26/.27(lsf),Rocky 9.8。
  • 31.28 = EDA-HPC(submit/GUI,TigerVNC :1~:4);31.29 = Flexlm。
  • 三共享目录:tools→/tools(ro)、modulefiles→/opt/modulefiles(rw)、pdk→/pdk(ro),七台均已挂载。
  • 工具安装:21 棵树(含老 ICC 1.5G)/ 约 42.5G / 幂等复跑零变更。
  • license 在 31.29:Synopsys lmgrd:2700 + snpslmd:2701、Cadence lmgrd:5280 + cdslmd:5281,同机 systemd 化,⚠️ 重启单元后约 60–70 秒恢复监听。
  • module 体系:module load synopsys && module load eda2018/1.0 一次得 license + LD_PRELOAD + 20 个工具入口(含 SCL、ICCompiler)。
  • 老 ICC:icc_shell 可运行(31.28 实测 -version → O-2018.06-SP1)、七台可见可执行,module 加载后 command -v icc_shell 命中。
  • PDK:SAED32_EDK(19G)落 /data/nfs/pdk/SAED32_EDK(root:root,七台经 /pdk ro 消费);入口 module load pdk && module load saed32(先家族、后实体;模块名 saed32),加载后 SAED32_PATH=/pdk/SAED32_EDK。
  • VCS 兼容层:module load vcs-el7;七台 el7 binutils 2.27 在 /opt/compat/,做成独立模块以免老 ld 污染常规会话。

2. 机制性陷阱与红线

2.1 兼容层三根因(Rocky 9)

① glibc ≥2.34 移除 __pthread_unwind@GLIBC_PRIVATE → libpthread.so.0 shim(LD_PRELOAD,放不参与 ldconfig 的 libexec/); ② 老 zlib 与系统 libpng16 冲突 → LD_PRELOAD 系统 libz; ③ pt/pwr 段错误源于 nss-myhostname → hosts 行移除 myhostname。

2.2 红线

  • 【红线】VCS 运行必须 VCS_USE_MALLOC=1;SpyGlass 必须 SG_CONSOLE_SE=1 + EDA_COMPAT_FAKE_UNAME=1(均已由 modulefile 设置,勿在会话里覆盖)。
  • 【红线】兼容层 shim 绝不可放进被 ldconfig 扫描的目录(会顶替全系统 libpthread);只能经 LD_PRELOAD 注入。
  • 【红线】/usr/local/bin/uname 是兼容层制品(占全机 uname 优先位):未设 EDA_COMPAT_FAKE_UNAME=1 时完全透传真实 uname,勿手改。
  • 【红线】31.28 及六台的 /etc/nsswitch.conf hosts 行已移除 myhostname;勿"顺手恢复"。
  • 【红线】两套 FlexLM 已 systemd 托管,按单元名操作;不要 pkill lmgrd / pkill -f(会杀掉承载命令的 SSH 会话)。重启后约 60–70 秒恢复监听;firewall-cmd 变更不执行 --reload;有作业的节点不动。
  • 【红线】不手改 /opt/modulefiles/Core/*、不动 fstab/exports。容器方案救不了 VCS。
  • 【红线】工具树新增产品:安装器拒绝 root(-install_as_root not recommended,勿用);路径为「setfacl -m u:rain:rwx <目标目录及 .installer> → 以 rain 安装 → setfacl -x → chown -R root:root + chmod -R u=rwX,go=rX」。
  • 【红线】module 树与工具树(/data/nfs/{modulefiles,tools})改动的唯一入口是宿主本机(NFS 服务端,需 root);客户端为 ro。slurm 部署器复跑会重建部分 module(含 eda2018/1.0.lua,重建后须重跑 apply_module_entry.py --apply 补回 ICC 入口);工具重装会复原 xa_fh。SAED32_EDK/ 是 PDK 源树(19G),勿删。
  • ⚠️ modulefile 红线:① license 必须用厂商专用变量 SNPSLMD_LICENSE_FILE——Cadence 已把 LM_LICENSE_FILE 设为 5280@192.168.31.29,Synopsys 老工具回退读它会超时重试、拖慢启动;② PDK 实体 modulefile 不得声明 family()——家族由 Core/pdk.lua 声明,重复声明会让 Lmod 卸载 pdk 入口并连带撤销 MODULEPATH 与 SAED32_PATH(实测踩到)。
  • ⚠️ 方法论:工具自带开关联网查不到、随包文档不写 —— 先 grep 工具自己的 bin/、etc/;gdb backtrace 常一击命中。见 skill synopsys-legacy-on-modern-linux。

3. 命令速查

# 一键加载(31.28 及六台)
module load synopsys && module load eda2018/1.0     # license + LD_PRELOAD + 20 工具入口
command -v icc_shell                                # 老 ICC(O-2018.06-SP1)
module load pdk && module load saed32               # SAED32 PDK(纯数据)

# 许可服务与查证
ssh root@192.168.31.29 'systemctl is-active flexlm-cadence flexlm-synopsys'
lmutil lmstat -c 2700@192.168.31.29

# PDK 装载与验证(本机)
cd synopsys_pdk_saed32_20260929
.venv/bin/python main.py --config config/pdk.yaml {precheck,deploy,drift,verify}

# 六台推广工程(drift 只读)
cd rocky9_eda_compat_20260928 && .venv/bin/python main.py --config config/rollout.yaml drift

# module 修复(幂等;需 sudo)
sudo -n python3 synopsys_module_fix_20260929/fix_modules.py --apply
sudo -n python3 synopsys_icc_install_20260929/apply_module_entry.py --apply   # 补 ICC 入口

4. 跨项目关联

本项目的部分红线与待办涉及其他项目;详情读对应项目的 HANDOFF / SOP。

关联项 关系 关键信息
Cadence OA Synopsys custom_compiler 缺 OpenAccess,Cadence 侧有 oa_v22.50.036 ../Cadence/ic617_install_20260926/docs/SOP.md
module family 共存 Cadence/Synopsys 厂商共存靠 slurm 项目的 Lmod family 作用域修复 ../../slurm/slurm_ins/module_family_scope_20260927/SOP.md
FlexLM 共机 31.29 同时跑 Synopsys(2700/2701) + Cadence(5280/5281),互不干扰靠厂商专用变量隔离 Synopsys 用 SNPSLMD_LICENSE_FILE,Cadence 用 LM_LICENSE_FILE(5280@192.168.31.29);回退读错会超时拖慢启动

5. 文档地图

根 docs/ 三件套分工;子项目 SOP / RUNBOOK 全量索引与任务路由在 PROJECT-MAP,不在此重复。

文件 管什么
docs/HANDOFF.md 动态快照:当前状态、未完成事项(SessionStart 全文注入)
docs/BASELINE.md(本文件) 稳定层:环境事实、机制陷阱与红线、命令速查、跨项目关联、文档地图
docs/PROJECT-MAP.md 静态全景:分层依赖图、任务路由表、16 个工程身份卡片、工程命名约定
docs/backup/README.md HANDOFF 历次整体重写版本的备份台账

来源:/home/rain/Documents/eda_tools_ins/Synopsys/docs/BASELINE.md | 最后更新:2026-10-08 22:56(由 build/sync.py 同步,请勿在站点侧修改)