/* 获取所有设备站点的列表 */ size_t sites_num = 0; int ret = QDMI_query_get_sites(device, 0, nullptr , &sites_num); throw_if_error(ret, "无法检索站点数量。" ); std::vector< QDMI_Site > sites(sites_num); ret = QDMI_query_get_sites(device, sites_num, sites.data(), nullptr ); throw_if_error(ret, "无法检索站点。" ); /* 查询设备的耦合图 */ size_t map_size = 0; ret = QDMI_query_device_property(device, QDMI_DEVICE_PROPERTY_COUPLINGMAP , 0, nullptr , &map_size); throw_if_error(ret, "无法查询耦合图的大小。"); const auto pair_num = map_size / sizeof( QDMI_Site ) / 2; std::vector> couple_pairs(pairs_num); ret = QDMI_query_device_property(device, QDMI_DEVICE_PROPERTY_COUPLINGMAP , size, static_cast < void *>(coupling_pairs.data()), nullptr ); throw_if_error(ret, "查询耦合图失败。" );
摘要 — 量子计算是一项很有前途的技术,它需要复杂的软件堆栈将最终用户连接到各种可能的量子后端。然而,当前的软件工具通常是针对单个平台进行硬编码的,缺乏能够自动检索和适应不同平台不断变化的物理特性和约束的动态接口。随着新硬件平台的频繁推出,其性能每天都在变化,这构成了严重的限制。在本文中,我们展示了一个概念和一个原型实现的接口,称为量子设备管理接口 (QDMI),它通过明确连接软件和硬件开发人员来解决这一问题,调解他们相互竞争的利益。QDMI 允许硬件平台以标准化的方式提供其物理特性,软件工具可以查询这些数据以相应地指导编译过程。这使得软件工具能够自动适应不同的平台并针对特定的硬件约束优化编译过程。QDMI 是慕尼黑量子软件堆栈 (MQSS) 的核心部分——一个复杂的软件堆栈,用于将最终用户连接到各种可能的量子后端。 QDMI 作为开源软件在 https://github.com/Munich-Quantum-Software-Stack/QDMI 上公开提供。