d**********6 发帖数: 112 | 1 写了一个小的Python的程序。 在单机上比较慢。现在准备在好多个机器上同时跑这个
程序。
问题:有没有现成的Python库,让这些在不同的机器上的Python程序共享数据结构?
如果其中的一个程序更新了这个数据结构, 别的程序应当能马上看到。
谢谢。 |
m****o 发帖数: 182 | |
d******c 发帖数: 2407 | 3 如果不是访问特别频繁,redis database,in memory database应该是容易的。
之前有个帖子,那是单机不一定要用数据库,但你多机,用数据库应该比搞spark之类
的简单。
https://www.mitbbs.com/article_t/Programming/31509253.html
【在 d**********6 的大作中提到】 : 写了一个小的Python的程序。 在单机上比较慢。现在准备在好多个机器上同时跑这个 : 程序。 : 问题:有没有现成的Python库,让这些在不同的机器上的Python程序共享数据结构? : 如果其中的一个程序更新了这个数据结构, 别的程序应当能马上看到。 : 谢谢。
|
g****t 发帖数: 31659 | 4 局域网内的话,直接share log文件就好了吧?
别的都很麻烦
【在 d**********6 的大作中提到】 : 写了一个小的Python的程序。 在单机上比较慢。现在准备在好多个机器上同时跑这个 : 程序。 : 问题:有没有现成的Python库,让这些在不同的机器上的Python程序共享数据结构? : 如果其中的一个程序更新了这个数据结构, 别的程序应当能马上看到。 : 谢谢。
|
n******g 发帖数: 2201 | 5 Serialization
Pickle
[在 dailygrind16 (天天绞肉机) 的大作中提到:]
:写了一个小的Python的程序。 在单机上比较慢。现在准备在好多个机器上同时跑这个
:程序。
:问题:有没有现成的Python库,让这些在不同的机器上的Python程序共享数据结构?
:如果其中的一个程序更新了这个数据结构, 别的程序应当能马上看到。
:谢谢。 |
d**********6 发帖数: 112 | 6 谢谢大伙的回复。
Shared logging file 对于我的这个应用好像不太合适(不够快?)。在这个应用里,
那些Python 程序要共享的数据结构是动态增长的和无法提前预测的; 如果一个Python
程序产生了一个新的节点(到那个数据结构里的话), 别的Python程序就不应当再重
复这个劳动。这个有点像多个计算机程序之间shared data structure。
另外, 这是一个小应用,所以能够不用大的, 复杂的库是最理想的。
我先试试哥们推荐的几个库看看。
【在 g****t 的大作中提到】 : 局域网内的话,直接share log文件就好了吧? : 别的都很麻烦
|
w***g 发帖数: 5958 | 7 你跑python程序时看看CPU有没有所有core都用满。别先急着折腾多机。
多机共享数据结构这个做起来不易,不到萬不得已不应该试。
不管是spark还是数据库,都只是多机共享数据, 但都谈不上什么结构。
用这些轮子做“结构”都会很慢。
【在 d**********6 的大作中提到】 : 写了一个小的Python的程序。 在单机上比较慢。现在准备在好多个机器上同时跑这个 : 程序。 : 问题:有没有现成的Python库,让这些在不同的机器上的Python程序共享数据结构? : 如果其中的一个程序更新了这个数据结构, 别的程序应当能马上看到。 : 谢谢。
|
w********m 发帖数: 1137 | 8 共享数据结构的第一个问题是access走哪条路,TCP还是HTTP。
Redis pubsub可以是首选。 |
d***a 发帖数: 13752 | 9 说的对。Software distributed shared memory不容易做好也不容易用好。Python好象
没有现成的轮子,那就不要跳这个坑。
【在 w***g 的大作中提到】 : 你跑python程序时看看CPU有没有所有core都用满。别先急着折腾多机。 : 多机共享数据结构这个做起来不易,不到萬不得已不应该试。 : 不管是spark还是数据库,都只是多机共享数据, 但都谈不上什么结构。 : 用这些轮子做“结构”都会很慢。
|
d***a 发帖数: 13752 | 10 你要是用数据库的话,数据库本身很可能会成为瓶颈。
Python有个MPI的模块叫mpi4py,也许可以试试。但我自己从来没在python里用过MPI,
只在C和FORTRAN里用过。
Python
【在 d**********6 的大作中提到】 : 谢谢大伙的回复。 : Shared logging file 对于我的这个应用好像不太合适(不够快?)。在这个应用里, : 那些Python 程序要共享的数据结构是动态增长的和无法提前预测的; 如果一个Python : 程序产生了一个新的节点(到那个数据结构里的话), 别的Python程序就不应当再重 : 复这个劳动。这个有点像多个计算机程序之间shared data structure。 : 另外, 这是一个小应用,所以能够不用大的, 复杂的库是最理想的。 : 我先试试哥们推荐的几个库看看。
|
|
|
d**********6 发帖数: 112 | 11 好主意。 这个Python程序并不是computation-intensive。慢估计是别的原因。
之所以选择Python是因为有两个轮子好用。以前用Java 和 C 比较多。用Python认真地
写程序还是第一次。 所以来问问。
谢谢楼上大伙的回复。
【在 w***g 的大作中提到】 : 你跑python程序时看看CPU有没有所有core都用满。别先急着折腾多机。 : 多机共享数据结构这个做起来不易,不到萬不得已不应该试。 : 不管是spark还是数据库,都只是多机共享数据, 但都谈不上什么结构。 : 用这些轮子做“结构”都会很慢。
|
c******n 发帖数: 16666 | 12 嗯 查查瓶颈到底在哪里
时间紧就花钱砸硬件 租个大内存全ssd的机器来跑
【在 d**********6 的大作中提到】 : 好主意。 这个Python程序并不是computation-intensive。慢估计是别的原因。 : 之所以选择Python是因为有两个轮子好用。以前用Java 和 C 比较多。用Python认真地 : 写程序还是第一次。 所以来问问。 : 谢谢楼上大伙的回复。
|
t******o 发帖数: 61 | 13 给你出个馊主意:
跟老板说这个做不了 要么花钱买新机器 要么雇俩contractor归你指挥
等资源拿到手 就玩命干活 干出来后 不但有credit 还展现了你的team leading能力
ps:很多技术问题,首先要避免的就是闷头吭哧吭哧一个人干完。多向南亚人学习
【在 d**********6 的大作中提到】 : 写了一个小的Python的程序。 在单机上比较慢。现在准备在好多个机器上同时跑这个 : 程序。 : 问题:有没有现成的Python库,让这些在不同的机器上的Python程序共享数据结构? : 如果其中的一个程序更新了这个数据结构, 别的程序应当能马上看到。 : 谢谢。
|
a*****g 发帖数: 19398 | 14 o(∩_∩)o...哈哈!!!有创意i啊。
这个
?
【在 t******o 的大作中提到】 : 给你出个馊主意: : 跟老板说这个做不了 要么花钱买新机器 要么雇俩contractor归你指挥 : 等资源拿到手 就玩命干活 干出来后 不但有credit 还展现了你的team leading能力 : ps:很多技术问题,首先要避免的就是闷头吭哧吭哧一个人干完。多向南亚人学习
|
w***g 发帖数: 5958 | 15 话是这么说, 但是contractor在这里起了啥作用?
难道不应该是逼contractor玩命干活?
完了怎么避免contractor取代自己?
【在 t******o 的大作中提到】 : 给你出个馊主意: : 跟老板说这个做不了 要么花钱买新机器 要么雇俩contractor归你指挥 : 等资源拿到手 就玩命干活 干出来后 不但有credit 还展现了你的team leading能力 : ps:很多技术问题,首先要避免的就是闷头吭哧吭哧一个人干完。多向南亚人学习
|
g****t 发帖数: 31659 | 16 培训和指挥人是最麻烦的,如果不是自己的公司,当领导往往是个吃力不讨好的事。
有那教别人的时间,还不如花时间教教自己小孩.
【在 w***g 的大作中提到】 : 话是这么说, 但是contractor在这里起了啥作用? : 难道不应该是逼contractor玩命干活? : 完了怎么避免contractor取代自己?
|
s*********y 发帖数: 6151 | 17 没搞清楚 瓶颈在哪就开始瞎jb优化 一直到7楼才开始回归正题 Lol |
g****t 发帖数: 31659 | 18 我给的share log文件的办法还是非常糙快猛的。而且很可能
是可以解决问题的。
log文件是慢,但是可以scale up. 你可以用很多机器。
还可以跨语言。跨操作系统。我有3个没人用的laptop,一个desktop,经常用这个办法。
起码你先能把分布式任务的逻辑跑通。
: 没搞清楚 瓶颈在哪就开始瞎jb优化 一直到7楼才开始回归正题 Lol
【在 s*********y 的大作中提到】 : 没搞清楚 瓶颈在哪就开始瞎jb优化 一直到7楼才开始回归正题 Lol
|
d**********6 发帖数: 112 | 19 对, 这个项目要的就是糙快猛。最主要的是要先看到那个数据结构长得什么样子。程
序的很多地方并不精细。
我先试试提高单机的搞法。 若不行, 就试试你的做法。 谢谢。
【在 g****t 的大作中提到】 : 我给的share log文件的办法还是非常糙快猛的。而且很可能 : 是可以解决问题的。 : log文件是慢,但是可以scale up. 你可以用很多机器。 : 还可以跨语言。跨操作系统。我有3个没人用的laptop,一个desktop,经常用这个办法。 : 起码你先能把分布式任务的逻辑跑通。 : : : 没搞清楚 瓶颈在哪就开始瞎jb优化 一直到7楼才开始回归正题 Lol :
|
t******o 发帖数: 61 | 20 contractor在这里基本起摆设作用,
1. 一般来说,很难找到水平高的contractor,除非花大价钱;感觉lz所在的公司不大
想能出这个钱;
2. 考虑指挥contractor,干活质量监督,擦屁股,开会扯淡,花的时间,跟你自己
solo花的时间比较一下,看哪个时间少,就走哪条路。
3. contractor摆在这里主要衬托lz的team leading能力,至于私底下到底谁干了活,
不重要;重要的是,在老板眼里是你带着一帮人把这活干了。
【在 w***g 的大作中提到】 : 话是这么说, 但是contractor在这里起了啥作用? : 难道不应该是逼contractor玩命干活? : 完了怎么避免contractor取代自己?
|
a***n 发帖数: 623 | 21 这条回复要严肃点赞
【在 t******o 的大作中提到】 : 给你出个馊主意: : 跟老板说这个做不了 要么花钱买新机器 要么雇俩contractor归你指挥 : 等资源拿到手 就玩命干活 干出来后 不但有credit 还展现了你的team leading能力 : ps:很多技术问题,首先要避免的就是闷头吭哧吭哧一个人干完。多向南亚人学习
|