멀티프로세서 프로그래밍

예전 회사에서 JavaOne 에 갈 기회가 있었다. 여러 session 들을 들었지만, 내게 가장 Impact 있었던 것이 Intel 에서 온 사람이 발표한 (중국계 같았다) STM/HTM 관련 session 이었다. 그때는 분명히 흥미롭다고 생각하고 찾아봐야지 생각했는데, 그 후 일상에 쫓겨 망각의 강 너머로 밀려가 버렸다.

한달 전 즈음에 이 책 어떤가요? 란 질문이 내가 자주 가는 사이트의 포럼에 올라왔다.
일단 평소 관심이 있던 주제라서 목차를 훑어 보니 마지막 장에 TM (Transaction Memory)  가 있어서 "더헛" 이라는 감탄사와 함께 바로 질렀다.
사용자 삽입 이미지
학교를 다닐 때 친구가 한 말이 있다.
우리 학교가 왜 좋은 학교인가 - 그건 "저자 직강" 이 많기 때문이다.
이 책의 저자 (모리스 헐리히, 니르 샤비트) 들에 대해 잘 몰랐지만, 챕터의 끝 마다 있는 "일러두기"를 볼 때 마다  이 사람들이 책에서 설명하고 있는 바로 이 알고리즘을 발견한 사람들이구나 하는 감탄을 반복하게 된다.

물론 이 책에서 이야기 하는 선형화 가능 시점을 찾아내어 증명하고, 무잠금 알고리즘을 적용하는 것이 산업 현장에서 바로 적용하는 건 쉽지 않다. 왜냐면 이러한 무잠금 알고리즘은
  1. 닥치고 synchronize 인 Coarse-grained 잠금 보다 이해하기 어려워 적용하기 쉽지 않고
  2. 따라서 향후 유지보수가 쉽지 않으며
  3. 환경 ( H/W support 여부, Application algorithm, 경쟁상황의 빈도) 에 따라 그 결과치가 매우 다를 수 있으므로
쉽게
복잡한 타이밍 기반 기술
로 생각되기 쉽다.
하지만, 이미 해당 이론을 적용한 결과 (java.util.concurrent.*) 들이 널리 쓰이고 있으니, 더이상 실용성 없는 이론가들의 이상세계에 대한 넋두리라고 치부할 일은 아니다.
그동안 Middleware 를 만드는 일을 해 왔으면서도 바쁘다는 핑게로 기반 이론에 대한 이해와 발전 상황에 대해 지나치게 피동적이고 방어적으로 행동하지 않았는가 라는 반성을 하게 된다.

자 이제 번역서의 질에 대해 듣기싫은 이야기를 좀 해야 되겠다.
일단 지금까지 읽은 부분에 대해 리스트업을 좀 하면
  1. p53 무기아 상태와 무교착 상태에 대해 거꾸로 설명한다.
  2. p54 오기가 있다. j = 1-i
  3. p78 최대 n-1 개의 DOWN 과 DOWN <- RIGHT 의 오기
  4. p249 클래스는 모니터가 클래스가 <- 중복
  5. p288 각 노드에 Boolean 인 marked 필드를 추가하려 (추가하여 의 오기)
  6. p298 만약 currA 의 키가 a 의 키와 갔다면 (어딜 가?)
  7. p342 EliminationArray 를 사용하여 Stack 를 만들었는데 전체적으로 선형화 되지는 않으므로 (push/pop 이 성공한 경우와 실패한 경우 선형화 시점이 다르다) 선입 선출이 깨진 것이 아닌지. 그렇다면 이걸 Stack 이라고 부를 수 있을까?
  8. p354 그림 12.6 결합 전단계 는 12.3 의 오기인듯
  9. p369 Balancer.traverse() 는 인자가 없다고 해 놓고선 public synchronized int traverse(t) -> 응?
  10. p367 입력 수열이 계단 속성을 지닌다. - 수열의 계단 속성에 대해서는 설명한 바 없음 -> 원서에도 이모양일까?
  11. p369 half[] 는 width 의 반인 Merger 객체의 2차원 배열이다 -> element 가 2개인 1차원 배열이던데?
  12. p409 크기를 변강?하는 중에는
  13. p415 비트를 뒤집다 -> 일반적으로 1->0, 0->1 로 하는 걸 비트를 뒤집다 라고 표현하지 않는가?
  14. p438 이런 종류의 성능을 무작위화 없이 만들어낼 방법을 -> 은 의 오기?
헥헥.
아... 너무 읽기 힘들어요...
2판에는 신경 좀 써 주세요.

Posted by eoh

2009/11/15 06:10 2009/11/15 06:10
, ,
Response
No Trackback , No Comment
RSS :
http://endofhope.com/tc/rss/response/13

Books, books, books.

시간을 내서 책들을 정리했다.
책장에 모셔놓고 보니 또 배치가 마음에 들지 않아서 시간이 더 걸렸다.
얼추 정돈한 다음 사진을 찍었다.
사용자 삽입 이미지

문 밖에서 본 정경. 책장 방이 콩만한 관계로 오른쪽 끝이 잘렸다.

사용자 삽입 이미지

어떻게 좀 다 나오게 해 보려고 문가에 붙어 발광하면서 찍었다.

사용자 삽입 이미지

오른쪽에서 본 각도는 포기하고 왼쪽에서는 각이 나올까 하여 다시 한번 시도. 하지만 각은 더 안 나온다.

전체를 풀샷으로 박는 것은 포기하고 어떤 책들이 있나 보자.
사용자 삽입 이미지

말당선생을 키운 건 팔할이 바람이라더니, 내가 번 돈의 90%는 이걸로 벌었을 거다.

사용자 삽입 이미지

얼마 못 받던 초년병 시절부터 오라일리 책은 진리라고 생각하고 아까운줄 모르고 질러댔었지.

사용자 삽입 이미지

이렇게 출판사별로 모아놓고 보니 이건 뭐 동물원이구만.

사용자 삽입 이미지

제일 왼쪽 책인 Practical Java 는 Effective Java 가 나오기 전 까지는 거의 유일하다시피한 코드 레벨 지침서였는데. 또한 wrox 의 시뻘건 책들도 많이도 사 모았다. 너무 짧은 시간에 너무 많은 책들을 내다 보니 퀄러티에 문제가 있는 것들도 있었고. 결국은 망했지.

사용자 삽입 이미지

그러도 보니 어찌 어찌 제본한 책도 좀 있구나.

사용자 삽입 이미지

지금은 이클립스를 쓰지만 막상 이런 책들을 살 때 까지는 닥치고 JBuilder 였기 때문에 끝까지 읽은 eclipse 책은 없는 것 같다. - 근데 제일 끝의 이솝 우화랑 파인만의 물리학 강의록은 뭐냐 ㅡ.ㅡ;;

사용자 삽입 이미지

(천한?) 출신 성분 못 버리고 수학에 관한 교양 서적을 사고, 낑낑대며 읽고는 은근슬쩍 직업 수학자에 대한 환상을 품다가. 바로 포기하곤 잔다.

사용자 삽입 이미지

수학책 뿐 아니라 과학책들도 좀 읽었다. (에헴) 저 코스모스 는 중학생때 산 책인데 아직도 애지중지 하면서 들고 다닌다.

사용자 삽입 이미지

인문학에도 조예가 깊다(!?!) 는 것을 보여주는 구획! 저 사회 심리학 책은 심리학 수강하면서 너무 마음에 들어서 샀다.

사용자 삽입 이미지

비트겐슈타인, 칸트 에 대한 편협한 애정을 보여주는 구획.

사용자 삽입 이미지

그렇다. 한때 씨샵을 해 보려고 저 큰 책을 읽어댄 적이 있었지. 하지만 언제나 결론은 남자라면 TeX 이란 거다.

사용자 삽입 이미지

남자의 책들이 모여있는 구획이다. 남자라면 (이맥스,펄) 그것은 진리.

사용자 삽입 이미지

세상은 남들이 말하는 대로 존재하는 것이 아니다는 것을 알 수 있게 해 주는 책들.

사용자 삽입 이미지

요츠바다 요츠바. 다 늙어서도 요츠바랑?! 보면서 히죽대는 것이 전혀! 부끄럽지 않다.

사용자 삽입 이미지

SF 소설은 왜 자꾸 절판되는 걸까? 그리고 나는 왜 시공사 책을 살 수 밖엔 없는 걸까.

사용자 삽입 이미지

싼 맛에 고전들을 사지만 막상 끝까지 읽은 게 없다는게 아쉬울 뿐. 시간 없다는 건 다 비겁한 변명이라는데...

사용자 삽입 이미지

대학 1학년때 율리시즈가 명작이라고 큰돈들여 사놓고 어언 20년 가까지 펴보지도 않은 한마디로 돈 아까운 책.

사용자 삽입 이미지

음악적인 소양 또한 보여주는 구획. 서양음악 이야기 시리즈는 각각 20번씩은 읽은 듯 하다. (그림으로 읽는 이란 부분은 그냥 잊어줘)

사용자 삽입 이미지

볼때마다 가슴이 미어져서 그냥. ㅠ.ㅠ;;

사용자 삽입 이미지

한 2년 전 즈음에 은근 미쳐서 학교때 대충 넘어간 책들을 도로 읽어 보자 생각에 집합론 책부터 읽기 시작했다. 집합론 책 2권 다 읽고선 다음은 위상이다 생각을 했는데... 했는데... 그 다음은 생각나지 않는다. ㅠ.ㅠ

사용자 삽입 이미지

TACP 는 읽지 않더라도 모셔 놓아야 한다는 말에 혹해서 정말! 모셔놓고만 있다. 실은 앞부분 수학 부분까지 읽고선 어셈블리 가 나오길래 어셈블리 책을 사 놓고선 또 정신줄 놓는 바람에... 컥.

사용자 삽입 이미지

병렬 컴퓨팅, 데이터 스트럭쳐, 알고리즘, 리눅스 커널, 내가 알고 있는 컴퓨팅의 모든 것의 기반은 다 여기서 얻은 거라고 말하면 과장일까?

사용자 삽입 이미지

저기 중간의 노란 책이 바로 TACP 를 인터럽트 걸고선 다시 깨워주지 않은 바로 그 어셈블리 책. 하지만 인터럽트 건 것도 나고, 이 책을 안 읽은 놈도 나지. 누굴 탓 하겠는가.


Posted by eoh

2009/09/12 15:56 2009/09/12 15:56
Response
No Trackback , No Comment
RSS :
http://endofhope.com/tc/rss/response/5


블로그 이미지

말할 수 있는 것은 분명하게 말해질 수 있다. 말해질 수 없는 것에 대해서는 침묵해야 한다. 논리 철학 논고 - 루드비히 비트겐슈타인.

- eoh

Archives

Authors

  1. eoh

Recent Comments

Recent Trackbacks

Calendar

«   2012/05   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Site Stats

Total hits:
20044
Today:
29
Yesterday:
47