Redian新闻
>
一个关于多个Python 程序共享数据结构的问题
avatar
一个关于多个Python 程序共享数据结构的问题# Programming - 葵花宝典
m*a
1
Being a minority, but does not mean " can not be popular"
avatar
d*6
2
写了一个小的Python的程序。 在单机上比较慢。现在准备在好多个机器上同时跑这个
程序。
问题:有没有现成的Python库,让这些在不同的机器上的Python程序共享数据结构?
如果其中的一个程序更新了这个数据结构, 别的程序应当能马上看到。
谢谢。
avatar
P*s
3
虽然这句话没错,但是不支持你的论点

【在 m****a 的大作中提到】
: Being a minority, but does not mean " can not be popular"
avatar
m*o
4
直接上pyspark吧
avatar
s*n
5
为什么非要POPULAR,我认得个白人女孩,自称高中是个书虫JERK,老是被人嘲笑,后来
了,本科毕业打无数零工混经验推荐信,现在已经医学院快毕业了,
高中阶段知道自己是谁,自己要什么,比什么都重要
avatar
d*c
6
如果不是访问特别频繁,redis database,in memory database应该是容易的。
之前有个帖子,那是单机不一定要用数据库,但你多机,用数据库应该比搞spark之类
的简单。
https://www.mitbbs.com/article_t/Programming/31509253.html

【在 d**********6 的大作中提到】
: 写了一个小的Python的程序。 在单机上比较慢。现在准备在好多个机器上同时跑这个
: 程序。
: 问题:有没有现成的Python库,让这些在不同的机器上的Python程序共享数据结构?
: 如果其中的一个程序更新了这个数据结构, 别的程序应当能马上看到。
: 谢谢。

avatar
i*e
7
这个说得太对了
有的人一辈子都搞不清楚
对了,你有什么好的推法么?

【在 s******n 的大作中提到】
: 为什么非要POPULAR,我认得个白人女孩,自称高中是个书虫JERK,老是被人嘲笑,后来
: 了,本科毕业打无数零工混经验推荐信,现在已经医学院快毕业了,
: 高中阶段知道自己是谁,自己要什么,比什么都重要

avatar
g*t
8
局域网内的话,直接share log文件就好了吧?
别的都很麻烦

【在 d**********6 的大作中提到】
: 写了一个小的Python的程序。 在单机上比较慢。现在准备在好多个机器上同时跑这个
: 程序。
: 问题:有没有现成的Python库,让这些在不同的机器上的Python程序共享数据结构?
: 如果其中的一个程序更新了这个数据结构, 别的程序应当能马上看到。
: 谢谢。

avatar
n*g
9
Serialization
Pickle
[在 dailygrind16 (天天绞肉机) 的大作中提到:]
:写了一个小的Python的程序。 在单机上比较慢。现在准备在好多个机器上同时跑这个
:程序。
:问题:有没有现成的Python库,让这些在不同的机器上的Python程序共享数据结构?
:如果其中的一个程序更新了这个数据结构, 别的程序应当能马上看到。
:谢谢。
avatar
d*6
10
谢谢大伙的回复。
Shared logging file 对于我的这个应用好像不太合适(不够快?)。在这个应用里,
那些Python 程序要共享的数据结构是动态增长的和无法提前预测的; 如果一个Python
程序产生了一个新的节点(到那个数据结构里的话), 别的Python程序就不应当再重
复这个劳动。这个有点像多个计算机程序之间shared data structure。
另外, 这是一个小应用,所以能够不用大的, 复杂的库是最理想的。
我先试试哥们推荐的几个库看看。

【在 g****t 的大作中提到】
: 局域网内的话,直接share log文件就好了吧?
: 别的都很麻烦

avatar
w*g
11
你跑python程序时看看CPU有没有所有core都用满。别先急着折腾多机。
多机共享数据结构这个做起来不易,不到萬不得已不应该试。
不管是spark还是数据库,都只是多机共享数据, 但都谈不上什么结构。
用这些轮子做“结构”都会很慢。

【在 d**********6 的大作中提到】
: 写了一个小的Python的程序。 在单机上比较慢。现在准备在好多个机器上同时跑这个
: 程序。
: 问题:有没有现成的Python库,让这些在不同的机器上的Python程序共享数据结构?
: 如果其中的一个程序更新了这个数据结构, 别的程序应当能马上看到。
: 谢谢。

avatar
w*m
12
共享数据结构的第一个问题是access走哪条路,TCP还是HTTP。
Redis pubsub可以是首选。
avatar
d*a
13
说的对。Software distributed shared memory不容易做好也不容易用好。Python好象
没有现成的轮子,那就不要跳这个坑。

【在 w***g 的大作中提到】
: 你跑python程序时看看CPU有没有所有core都用满。别先急着折腾多机。
: 多机共享数据结构这个做起来不易,不到萬不得已不应该试。
: 不管是spark还是数据库,都只是多机共享数据, 但都谈不上什么结构。
: 用这些轮子做“结构”都会很慢。

avatar
d*a
14
你要是用数据库的话,数据库本身很可能会成为瓶颈。
Python有个MPI的模块叫mpi4py,也许可以试试。但我自己从来没在python里用过MPI,
只在C和FORTRAN里用过。

Python

【在 d**********6 的大作中提到】
: 谢谢大伙的回复。
: Shared logging file 对于我的这个应用好像不太合适(不够快?)。在这个应用里,
: 那些Python 程序要共享的数据结构是动态增长的和无法提前预测的; 如果一个Python
: 程序产生了一个新的节点(到那个数据结构里的话), 别的Python程序就不应当再重
: 复这个劳动。这个有点像多个计算机程序之间shared data structure。
: 另外, 这是一个小应用,所以能够不用大的, 复杂的库是最理想的。
: 我先试试哥们推荐的几个库看看。

avatar
d*6
15
好主意。 这个Python程序并不是computation-intensive。慢估计是别的原因。
之所以选择Python是因为有两个轮子好用。以前用Java 和 C 比较多。用Python认真地
写程序还是第一次。 所以来问问。
谢谢楼上大伙的回复。

【在 w***g 的大作中提到】
: 你跑python程序时看看CPU有没有所有core都用满。别先急着折腾多机。
: 多机共享数据结构这个做起来不易,不到萬不得已不应该试。
: 不管是spark还是数据库,都只是多机共享数据, 但都谈不上什么结构。
: 用这些轮子做“结构”都会很慢。

avatar
c*n
16
嗯 查查瓶颈到底在哪里
时间紧就花钱砸硬件 租个大内存全ssd的机器来跑

【在 d**********6 的大作中提到】
: 好主意。 这个Python程序并不是computation-intensive。慢估计是别的原因。
: 之所以选择Python是因为有两个轮子好用。以前用Java 和 C 比较多。用Python认真地
: 写程序还是第一次。 所以来问问。
: 谢谢楼上大伙的回复。

avatar
t*o
17
给你出个馊主意:
跟老板说这个做不了 要么花钱买新机器 要么雇俩contractor归你指挥
等资源拿到手 就玩命干活 干出来后 不但有credit 还展现了你的team leading能力
ps:很多技术问题,首先要避免的就是闷头吭哧吭哧一个人干完。多向南亚人学习

【在 d**********6 的大作中提到】
: 写了一个小的Python的程序。 在单机上比较慢。现在准备在好多个机器上同时跑这个
: 程序。
: 问题:有没有现成的Python库,让这些在不同的机器上的Python程序共享数据结构?
: 如果其中的一个程序更新了这个数据结构, 别的程序应当能马上看到。
: 谢谢。

avatar
a*g
18
o(∩_∩)o...哈哈!!!有创意i啊。

这个


【在 t******o 的大作中提到】
: 给你出个馊主意:
: 跟老板说这个做不了 要么花钱买新机器 要么雇俩contractor归你指挥
: 等资源拿到手 就玩命干活 干出来后 不但有credit 还展现了你的team leading能力
: ps:很多技术问题,首先要避免的就是闷头吭哧吭哧一个人干完。多向南亚人学习

avatar
w*g
19
话是这么说, 但是contractor在这里起了啥作用?
难道不应该是逼contractor玩命干活?
完了怎么避免contractor取代自己?

【在 t******o 的大作中提到】
: 给你出个馊主意:
: 跟老板说这个做不了 要么花钱买新机器 要么雇俩contractor归你指挥
: 等资源拿到手 就玩命干活 干出来后 不但有credit 还展现了你的team leading能力
: ps:很多技术问题,首先要避免的就是闷头吭哧吭哧一个人干完。多向南亚人学习

avatar
g*t
20
培训和指挥人是最麻烦的,如果不是自己的公司,当领导往往是个吃力不讨好的事。
有那教别人的时间,还不如花时间教教自己小孩.

【在 w***g 的大作中提到】
: 话是这么说, 但是contractor在这里起了啥作用?
: 难道不应该是逼contractor玩命干活?
: 完了怎么避免contractor取代自己?

avatar
s*y
21
没搞清楚 瓶颈在哪就开始瞎jb优化 一直到7楼才开始回归正题 Lol
avatar
g*t
22
我给的share log文件的办法还是非常糙快猛的。而且很可能
是可以解决问题的。
log文件是慢,但是可以scale up. 你可以用很多机器。
还可以跨语言。跨操作系统。我有3个没人用的laptop,一个desktop,经常用这个办法。
起码你先能把分布式任务的逻辑跑通。


: 没搞清楚 瓶颈在哪就开始瞎jb优化 一直到7楼才开始回归正题 Lol



【在 s*********y 的大作中提到】
: 没搞清楚 瓶颈在哪就开始瞎jb优化 一直到7楼才开始回归正题 Lol
avatar
d*6
23
对, 这个项目要的就是糙快猛。最主要的是要先看到那个数据结构长得什么样子。程
序的很多地方并不精细。
我先试试提高单机的搞法。 若不行, 就试试你的做法。 谢谢。

【在 g****t 的大作中提到】
: 我给的share log文件的办法还是非常糙快猛的。而且很可能
: 是可以解决问题的。
: log文件是慢,但是可以scale up. 你可以用很多机器。
: 还可以跨语言。跨操作系统。我有3个没人用的laptop,一个desktop,经常用这个办法。
: 起码你先能把分布式任务的逻辑跑通。
:
:
: 没搞清楚 瓶颈在哪就开始瞎jb优化 一直到7楼才开始回归正题 Lol
:

avatar
t*o
24
contractor在这里基本起摆设作用,
1. 一般来说,很难找到水平高的contractor,除非花大价钱;感觉lz所在的公司不大
想能出这个钱;
2. 考虑指挥contractor,干活质量监督,擦屁股,开会扯淡,花的时间,跟你自己
solo花的时间比较一下,看哪个时间少,就走哪条路。
3. contractor摆在这里主要衬托lz的team leading能力,至于私底下到底谁干了活,
不重要;重要的是,在老板眼里是你带着一帮人把这活干了。

【在 w***g 的大作中提到】
: 话是这么说, 但是contractor在这里起了啥作用?
: 难道不应该是逼contractor玩命干活?
: 完了怎么避免contractor取代自己?

avatar
a*n
25
这条回复要严肃点赞

【在 t******o 的大作中提到】
: 给你出个馊主意:
: 跟老板说这个做不了 要么花钱买新机器 要么雇俩contractor归你指挥
: 等资源拿到手 就玩命干活 干出来后 不但有credit 还展现了你的team leading能力
: ps:很多技术问题,首先要避免的就是闷头吭哧吭哧一个人干完。多向南亚人学习

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。