peredvizhnikov engine
1.0.0
Peredvizhnikov Engine 是一个用 C++20 编写的完全无锁的游戏引擎。它在语言的协程原语之上实现了并发计算的参与者模型。
使用参与者模型抽象,可以开发复杂的并行逻辑,同时完全与线程间同步的细节隔离。该模型的完全无锁实现带来了许多优点,即即使在任意线程终止的情况下也能保证进度、无死锁、对关键事件做出反应的可预测延迟以及容错。
事实上,Peredvizhnikov 引擎的容错程度非常高,即使任何工作线程被异步终止,引擎也能保证继续运行。这个你可以自己验证一下。
该实现建立在无锁编程中经典和新颖思想的结合之上。它包括软件事务内存的新颖实现、新型无锁队列、原始无锁序列化原语、无锁 std::atomic_shared_ptr、无锁调度程序、无锁内存分配器、编译时 DAG 等等!
有关实现该引擎的所有无锁算法的详细信息、设计原理、基准测试等,请查看随附的文档:Peredvizhnikov 引擎:完全无锁调度器的设计和实现。
为了进一步促进面向数据设计的开发,Peredvizhnikov 引擎实现了一个内存数据库,该数据库针对组件访问进行了优化并支持大型数据集。它建立在高性能平面哈希图和具有位图数据结构的按位特里树之上。
目前,唯一支持的平台是 Linux。构建源代码需要 Clang++ 16。
git clone https://github.com/eduard-permyakov/peredvizhnikov-engine.git
cd peredvizhnikov-engine
make -j16 DEBUG=0
Peredvizhnikov 引擎的源代码可根据 GPLv3 许可证免费获得。但是,我可能会根据具体情况授予在不同许可证下使用部分或全部代码的权限。请通过电子邮件询问。
如果您对源代码或底层算法有任何问题、意见或疑虑,可以与我联系。
另外,我目前正在积极寻找工作。请随时联系我们了解任何合适的机会。
我的电子邮件是:[email protected]