avatar
t*g
2
如果W2上Box 12里面没有内容的话,是不是退税时不能拿HSA作为deductible了?
我自己给HSA寄过支票,算作2013 contribution。这部分能不能作为deductible呢?
我这样情况,退税时还需要准备8889吗?
谢谢!
avatar
t*8
3
祖传的。
avatar
p*x
5
去shopping才回来。hoho。

【在 R*g 的大作中提到】
: -
avatar
d*w
6
The amount on W2 Box 12 is for employer contribution (including cafeteria
plan) only bah.
Your own contribution would not show there. That's why you need to file 8889
to get deduction.

【在 t******g 的大作中提到】
: 如果W2上Box 12里面没有内容的话,是不是退税时不能拿HSA作为deductible了?
: 我自己给HSA寄过支票,算作2013 contribution。这部分能不能作为deductible呢?
: 我这样情况,退税时还需要准备8889吗?
: 谢谢!

avatar
G*0
7
呵呵,祖传大头呀,让袁大人掌一下眼吧!

【在 t******8 的大作中提到】
: 祖传的。
avatar
W*o
8
这帖子太长了,粗看了一下。还是通过提问讨论学习一下吧。
有几个问题:
1. 如果几个processes要access shared data structure, 怎么避免race ?
2. 一个 process 对 common data structure 操作结束,怎么通知下一个 process? 按
照什么顺序?
3. 最后一个 process 处理完 common data structure, 怎么告诉其他 processes to
move
on ?

【在 b*******s 的大作中提到】
: http://kukuruku.co/hub/cpp/lock-free-data-structures-the-inside
avatar
t*g
9
多谢回复!
那Form 8853需要吗?
Archer MSAs and Long-Term Care Insurance Contracts是个啥玩意儿?

8889

【在 d**w 的大作中提到】
: The amount on W2 Box 12 is for employer contribution (including cafeteria
: plan) only bah.
: Your own contribution would not show there. That's why you need to file 8889
: to get deduction.

avatar
t*t
11
1. usually lock-free structures use atomic operations and (possibly) retry t
o guarantee race-free conditions without lock. how? read the article. are yo
u waiting others to spoon feed you...?
2. there is no lock so there is no notification. while one thread gain acces
s, the others just keep retrying.
3. since it's the last process, usually the other process already move on. i
guess you are thinking about barrier...


to

【在 W***o 的大作中提到】
: 这帖子太长了,粗看了一下。还是通过提问讨论学习一下吧。
: 有几个问题:
: 1. 如果几个processes要access shared data structure, 怎么避免race ?
: 2. 一个 process 对 common data structure 操作结束,怎么通知下一个 process? 按
: 照什么顺序?
: 3. 最后一个 process 处理完 common data structure, 怎么告诉其他 processes to
: move
: on ?

avatar
C*1
12
据说在民国年间就有大量制假,祖传的也不一定是真的。
avatar
t*8
14
呵呵,家里传了三代了。不管真假,我这枚都不卖,要不老爹要找麻烦了。有空上个边
齿照片。谢谢大家指教,学了不少知识。
avatar
W*o
15
谢谢,你说的第二点有点像busy waiting/spinning; 如果是一个分布式系统,这样快
有很高的 network communication overhead 吧
今天晚上没心情静下心来读,明天白天有空再详细读一下;
PS,如果这个idea很有创新,原作者应该会投给期刊发表出来了吧?呵呵

t
yo
acces
i

【在 t****t 的大作中提到】
: 1. usually lock-free structures use atomic operations and (possibly) retry t
: o guarantee race-free conditions without lock. how? read the article. are yo
: u waiting others to spoon feed you...?
: 2. there is no lock so there is no notification. while one thread gain acces
: s, the others just keep retrying.
: 3. since it's the last process, usually the other process already move on. i
: guess you are thinking about barrier...
:
: 按
: to

avatar
t*8
16
照边齿是个技术活啊,试了好多次。好像没法贴再回复里。没这个选项啊。
avatar
t*t
17
yes, busy waiting is essential for lock-free structures. no one says busy wa
iting should be used everywhere though.
and of course the idea is not new. in fact, every lock is internally impleme
nted with some kind of lock-free structures, using atomic operations. ultima
tely hardware guarantees an operation is atomic.

【在 W***o 的大作中提到】
: 谢谢,你说的第二点有点像busy waiting/spinning; 如果是一个分布式系统,这样快
: 有很高的 network communication overhead 吧
: 今天晚上没心情静下心来读,明天白天有空再详细读一下;
: PS,如果这个idea很有创新,原作者应该会投给期刊发表出来了吧?呵呵
:
: t
: yo
: acces
: i

avatar
g*e
19
test and set指令
avatar
G*0
20
家里传下几枚呀? 如祖传的,真的可能大.

【在 t******8 的大作中提到】
: 呵呵,家里传了三代了。不管真假,我这枚都不卖,要不老爹要找麻烦了。有空上个边
: 齿照片。谢谢大家指教,学了不少知识。

avatar
b*s
21
多谢,看过了

【在 t****t 的大作中提到】
: 你还不如看看c++ concurrency in action那本书. 写得不错.
avatar
G*0
22
为什么传不上?不是用"点击添加附件"吗? 大概是Image File太大了(>1M)

【在 t******8 的大作中提到】
: 照边齿是个技术活啊,试了好多次。好像没法贴再回复里。没这个选项啊。
avatar
t*8
24
就一枚。边齿的照片在上面。请大牛掌掌眼,把把关。四十年前我第一次看见它 的时
候,好像没这么氧化。在想要不要拿碱水洗洗。
avatar
t*t
25
程序写起来都一样, lock free和locked不能互相替代, 是两个不同情况用的东西.

【在 w***g 的大作中提到】
: 这种东西学术界折腾有几年了。Lock在性能上其实没那么不济。Lock free主要还是为
: 了程序写起来方便,性能上可能还不如lock。

avatar
G*0
26
大牛们都在闷声发财,没空顾及. 不过不能诜.

【在 t******8 的大作中提到】
: 就一枚。边齿的照片在上面。请大牛掌掌眼,把把关。四十年前我第一次看见它 的时
: 候,好像没这么氧化。在想要不要拿碱水洗洗。

avatar
b*s
27
写起来不一样。
如果共享的就是个计数器,不用lock free,还用lock就太傻了。可惜大部分人根本不
知道lock free,一个计数器还在用lock

【在 t****t 的大作中提到】
: 程序写起来都一样, lock free和locked不能互相替代, 是两个不同情况用的东西.
avatar
y*i
28
一眼真的甘肃大头,硬要说个版别的话,这个是“不断华大嘉禾”,这种瞄一眼就知道
的东西就不用看边齿了。
avatar
t*t
29
计数器这种trivial的情况不谈, 大多数lock-free的结构如果不用跟锁看起来一样的
spin, 那写起来肯定比带锁的麻烦. 我说的一样是指几个可能的操作都是预先设计好,
写一次就搞定的意思.

【在 b****s 的大作中提到】
: 写起来不一样。
: 如果共享的就是个计数器,不用lock free,还用lock就太傻了。可惜大部分人根本不
: 知道lock free,一个计数器还在用lock

avatar
t*8
30
@yuanshikai 你太牛了! 长知识了。 膜拜,膜拜中。。。俺是个绝对的新手。多谢赐
教!
avatar
b*s
31
为了追求高性能,麻烦还是有必要的。
程序拿不到锁,会进入睡眠状态,导致context switch,这个开销很大。用lock-free
就灵活多了

,

【在 t****t 的大作中提到】
: 计数器这种trivial的情况不谈, 大多数lock-free的结构如果不用跟锁看起来一样的
: spin, 那写起来肯定比带锁的麻烦. 我说的一样是指几个可能的操作都是预先设计好,
: 写一次就搞定的意思.

avatar
t*8
32
自学了一下,这好像是所谓的“开口贝”版。
avatar
b*s
33
不是新点子,很多人实现过

【在 W***o 的大作中提到】
: 谢谢,你说的第二点有点像busy waiting/spinning; 如果是一个分布式系统,这样快
: 有很高的 network communication overhead 吧
: 今天晚上没心情静下心来读,明天白天有空再详细读一下;
: PS,如果这个idea很有创新,原作者应该会投给期刊发表出来了吧?呵呵
:
: t
: yo
: acces
: i

avatar
m*1
34
千万别。

【在 t******8 的大作中提到】
: 就一枚。边齿的照片在上面。请大牛掌掌眼,把把关。四十年前我第一次看见它 的时
: 候,好像没这么氧化。在想要不要拿碱水洗洗。

avatar
b*s
35
看情况,单个任务很短暂,但任务切换很频繁数量很大的情况,lock-free不错

【在 w***g 的大作中提到】
: 这种东西学术界折腾有几年了。Lock在性能上其实没那么不济。Lock free主要还是为
: 了程序写起来方便,性能上可能还不如lock。

avatar
b*n
36
东西对,别在折腾了

【在 t******8 的大作中提到】
: 呵呵,家里传了三代了。不管真假,我这枚都不卖,要不老爹要找麻烦了。有空上个边
: 齿照片。谢谢大家指教,学了不少知识。

avatar
b*s
37
很多都是,比如quickfix engine就是
新的c++类库都自带atomic_flag这种test n set的spin lock

【在 b****s 的大作中提到】
: 写起来不一样。
: 如果共享的就是个计数器,不用lock free,还用lock就太傻了。可惜大部分人根本不
: 知道lock free,一个计数器还在用lock

avatar
n*t
38
lock-free 和高性能没有任何必然联系。觉得性能不好改用lock-free这是很多人的误
区。

free

【在 b****s 的大作中提到】
: 为了追求高性能,麻烦还是有必要的。
: 程序拿不到锁,会进入睡眠状态,导致context switch,这个开销很大。用lock-free
: 就灵活多了
:
: ,

avatar
F*n
39
lock-free reduces the chance of human-caused performance problem

【在 n******t 的大作中提到】
: lock-free 和高性能没有任何必然联系。觉得性能不好改用lock-free这是很多人的误
: 区。
:
: free

avatar
b*s
40
简单的性能例子,一个共享计数器更新,两个线程同时访问更新,数据更新不能冲突。
在1分钟之内,是用lock free更新的总次数多,还是用lock更新的总次数多。

【在 n******t 的大作中提到】
: lock-free 和高性能没有任何必然联系。觉得性能不好改用lock-free这是很多人的误
: 区。
:
: free

avatar
b*s
41
这个例子是有偏颇的,比如你有个线程忙得很,要很长时间才clear spin lock,这时
lock free就可能降低效率,因为所有在等的线程都在瞎忙,如果数量一大,就开销很
大了

【在 b****s 的大作中提到】
: 简单的性能例子,一个共享计数器更新,两个线程同时访问更新,数据更新不能冲突。
: 在1分钟之内,是用lock free更新的总次数多,还是用lock更新的总次数多。

avatar
b*s
42
所以看使用场合,lock free还是很有用的。传统的锁,拿不到会导致线程睡眠。
如果有1000个线程,同时有一个紧俏资源,大家都要用,但你不希望线程睡眠在这个锁
上,导致大量上下文切换,lock free就有用了。

【在 b*******s 的大作中提到】
: 这个例子是有偏颇的,比如你有个线程忙得很,要很长时间才clear spin lock,这时
: lock free就可能降低效率,因为所有在等的线程都在瞎忙,如果数量一大,就开销很
: 大了

avatar
s*k
43
看在什么平台上面吧,你说的这种在mobile上最优选择吧,不停地spin lock的话反而
功耗上没法承受

free

【在 b****s 的大作中提到】
: 为了追求高性能,麻烦还是有必要的。
: 程序拿不到锁,会进入睡眠状态,导致context switch,这个开销很大。用lock-free
: 就灵活多了
:
: ,

avatar
b*s
44
spin lock可以很快的,要看场合。
假设一个FIFO的queue的场合,一个线程读queue头内容,然后立刻释放锁,1000个线程
添加内容到queue尾,每个线程加入queue尾内容,然后立刻释放锁。queue的读和写操
作速度很快,一个线程就算一下抢不到,只要等一小会就能抢到。
但如果出现冲突,用传统锁,导致的线程切换,开销肯定大约spin lock

【在 s********k 的大作中提到】
: 看在什么平台上面吧,你说的这种在mobile上最优选择吧,不停地spin lock的话反而
: 功耗上没法承受
:
: free

avatar
n*t
45
实际程序几乎没你这么写的。。。
没事共享计数器干什么???

【在 b****s 的大作中提到】
: 简单的性能例子,一个共享计数器更新,两个线程同时访问更新,数据更新不能冲突。
: 在1分钟之内,是用lock free更新的总次数多,还是用lock更新的总次数多。

avatar
p*u
46

lock-free queues are very important, esp multiple-producer-single-consumer
and single-producer-single-consumer queues...

【在 n******t 的大作中提到】
: 实际程序几乎没你这么写的。。。
: 没事共享计数器干什么???

avatar
b*s
47
1000个threads就算你用lock free,也一样可能会有context switch的

【在 b****s 的大作中提到】
: 所以看使用场合,lock free还是很有用的。传统的锁,拿不到会导致线程睡眠。
: 如果有1000个线程,同时有一个紧俏资源,大家都要用,但你不希望线程睡眠在这个锁
: 上,导致大量上下文切换,lock free就有用了。

avatar
k*g
48
昏特。
本质上就是根据各任务的时间性,选择适当的保护方案。
Inefficiency = (average time per operation including lock overhead) divided
by (average time per operation excluding lock overhead) minus 1.0
The numerator is the actual performance. The divisor is the time spent "
doing useful stuff".
Ideally inefficiency = 0, i.e. zero overhead. In practice, make inefficiency
small.
Corollary: If the task takes longer time, it's okay to use lock with larger
overhead per-operation, because the inefficiency won't increase much.
nano-scale : lock-free, together with immutable/copyable types.
micro-scale : OS locks.
milli-scale : DB transactions
second-scale : need to show something to the user e.g. sandglass or spinning
beachball
avatar
b*s
49
总结得不错

divided
inefficiency
larger

【在 k**********g 的大作中提到】
: 昏特。
: 本质上就是根据各任务的时间性,选择适当的保护方案。
: Inefficiency = (average time per operation including lock overhead) divided
: by (average time per operation excluding lock overhead) minus 1.0
: The numerator is the actual performance. The divisor is the time spent "
: doing useful stuff".
: Ideally inefficiency = 0, i.e. zero overhead. In practice, make inefficiency
: small.
: Corollary: If the task takes longer time, it's okay to use lock with larger
: overhead per-operation, because the inefficiency won't increase much.

avatar
n*t
50
you apparently used very little MPSC queues in real life, at least in
performance critical settings.
One thing I think you probably do not know is, lock-free algos typically
make things slower, do you know why?

【在 p*u 的大作中提到】
:
: lock-free queues are very important, esp multiple-producer-single-consumer
: and single-producer-single-consumer queues...

avatar
p*u
52

yes, that's because ur co-workers or urself are incompetent.

【在 n******t 的大作中提到】
: you apparently used very little MPSC queues in real life, at least in
: performance critical settings.
: One thing I think you probably do not know is, lock-free algos typically
: make things slower, do you know why?

avatar
b*s
53
如果你用不到,忽略好了

【在 c*****4 的大作中提到】
: 晕死。打酱油地弱弱的问一句,搞清楚茴香豆的茴字有多少种写法真能赚到钱么?有多
: 少职务是要自己实现同步的。

avatar
n*t
54
man, let's be techinical and say some real stuff. typing some shit like a
randominternet dude makes yourself a random internet dude.

【在 p*u 的大作中提到】
:
: yes, that's because ur co-workers or urself are incompetent.

avatar
w*w
55
1000个线程都不睡 那不得1000个core啊 这个lock free应该是在low contention,
short critical session 时有用吧 并且数据结构得够简单 update 得isolated. CAS
又是个hack 总之是费力不讨好 多年前听过 现在还有人做吗?
avatar
j*x
56
扯淡。。。

【在 n******t 的大作中提到】
: you apparently used very little MPSC queues in real life, at least in
: performance critical settings.
: One thing I think you probably do not know is, lock-free algos typically
: make things slower, do you know why?

avatar
j*x
57
lock-free vs lock肯定是前者快,当然前提是不做大的架构变化。

【在 n******t 的大作中提到】
: you apparently used very little MPSC queues in real life, at least in
: performance critical settings.
: One thing I think you probably do not know is, lock-free algos typically
: make things slower, do you know why?

avatar
n*t
58
同学你这么肯定,你家里人知道么?
还架构变化,一看就是连lock-free定义都没搞清楚的,更不要说做过"重大架构变化了
"。

【在 j********x 的大作中提到】
: lock-free vs lock肯定是前者快,当然前提是不做大的架构变化。
avatar
o*0
59
学习了
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。