跳转至

Python 客户端基础测试

代码位置: src/framework/pytorch/python_client/client_test.py

简介

该测试验证 Client 端与 Parameter Server 的基础交互语义。它不依赖 PyTorch 的 nn.Module,而是直接调用 RecstoreClient 的底层接口。

流程与测试点

测试流程按顺序进行,每一个步骤都验证了 PS 交互的一个核心环节。

步骤 测试内容 关键代码逻辑 预期行为
Test 0 Embedding 表初始化 python\nok = client.init_embedding_table("default", 10000, 128)\nassert ok\n 只要 Server 正常运行,返回 True 表示建表成功。
Test 1 基础同步读写 python\n# Write [1001, 1002, 1003]\nclient.emb_write(keys_to_write, values)\n# Read back\nread_values = client.emb_read(keys_to_write, 128)\n 写入的数据必须与读回的数据完全一致 (torch.allclose)。
Test 2 异步预取 (Async Prefetch) python\npid = client.emb_prefetch(keys) # 发送请求,非阻塞\n# ... 其他计算任务 ...\nresult = client.emb_wait_result(pid, 128) # 阻塞等待结果\n 通过 Request ID (pid) 能够取回正确的数据。
Test 3 Table-aware 更新 python\n# 模拟梯度更新: param = param - lr * grad\nclient.emb_update_table("default", keys, grads)\n Server 端应用 SGD 更新。客户端手动计算预期值进行比对,容忍微小精度误差。