Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的无服务器并发写访问_Python_Binaryfiles_Hpc - Fatal编程技术网

Python中的无服务器并发写访问

Python中的无服务器并发写访问,python,binaryfiles,hpc,Python,Binaryfiles,Hpc,Python中是否有任何包支持使用无服务器架构在NFS上进行并发写操作 我在一个拥有超级计算机的环境中工作,多个作业并行保存数据。虽然我可以将这些计算的结果保存在单独的文件中,并在以后合并它们的结果,但这需要我编写一个读者,了解我在作业之间分割计算的具体方式,以便它知道如何正确地缝合最终数据结构中的所有内容 上次我检查时,SQLite不支持NFS中的并发。SQLite还有其他替代品吗 注意:无服务器意味着避免显式启动另一台处理IO请求的服务器(位于NFS之上)。我知道NFS使用客户机-服务器体系

Python中是否有任何包支持使用无服务器架构在NFS上进行并发写操作

我在一个拥有超级计算机的环境中工作,多个作业并行保存数据。虽然我可以将这些计算的结果保存在单独的文件中,并在以后合并它们的结果,但这需要我编写一个读者,了解我在作业之间分割计算的具体方式,以便它知道如何正确地缝合最终数据结构中的所有内容

上次我检查时,SQLite不支持NFS中的并发。SQLite还有其他替代品吗

注意:无服务器意味着避免显式启动另一台处理IO请求的服务器(位于NFS之上)。我知道NFS使用客户机-服务器体系结构,但是这个文件系统已经是我使用的超级计算机的一部分了。我不需要养活自己。我要找的是一个包或文件格式,它支持并发IO,而不需要我设置任何(额外)服务器

例子: 下面是我将并行运行的两个作业的示例:

  • 作业1用以下数据从头开始填充
    my_dict
    ,并将其保存到
    文件中:

    my_dict{'a'}{'foo'}=[0.2,0.3,0.4]

  • 作业2还使用以下数据从头开始填充
    my_dict
    ,并将其保存到
    文件中:

    my_dict{'a'}{'bar'}=[0.1,0.2]

我想稍后加载
文件
,并在
我的目录
中查看以下内容:

> my_dict{'a'}.items()
[('foo', [0.2, 0.3, 0.4]), ('bar', [2, 3, 5])]
请注意,缝合操作是自动的。在这个特殊的例子中,我选择在整个计算过程中分割
my_dict['a']
中的键,但也可以进行其他分割。基本思想是,工作之间不存在冲突。它隐式地假设作业添加/聚合数据,因此字典(如果使用Pandas,则为数据帧)的融合总是会导致聚合数据,即计算数据的“外部联接”。

简单的DIY,可能是不可靠的 分层锁定——即首先锁定
/
,然后锁定
/foo
并解锁
/
,然后锁定
/foo/bar
并解锁
/foo
。对
/foo/bar
进行更改并将其解锁

这允许其他进程访问其他路径。
/
上的锁争用相对较小

复杂的DIY 采用无锁或无等待算法,例如RCU。指针变成符号链接或包含其他路径列表的文件


您的问题非常令人困惑,因为您谈到NFS,然后使用了术语“无服务器”。因为NFS总是有一个服务器,所以没有意义。你能重新措辞吗?谢谢@Gabe-我已经更新了我的OP以解决你的问题。那么你想写的Python脚本将写入一个挂载的NFS卷?在这种安排下,您的python脚本就是客户端(不需要额外的服务器:)@JasonSperske correct。这是一个极其困难的问题。你不太可能找到任何已经写好的东西。