728x90
반응형

컴퓨터(Computer Science) 205

벤치마크, Benchmark [컴퓨터구조]

BenchMark 컴퓨터의 성능을 측정하기 위해서 Benchmarks 라는 것이 나오게 되었다. 그러나 기준이 필요했다. 표준기계가 있어서 그것으로 측정한다고 한다. CINT란 Floating 계산말고 INT로 성능을 시험했다는 뜻이라고 한다. Name 이라 써진 것이 프로그램들이다. 저기 SPEC ratio가 기준 컴퓨터보다 몇배가 뛰어난지 측정한 것이다. 그러나 산술 평균을 쓰지 않고 Geometirc Mean ,기하 평균을 썼다. 벤치마크 프로그램을 수행할 때는 원칙이 있는데 누가 돌려도 성능이 똑같이 측정이 되어야한다. 그래서 위와 같이 list everything 처럼 측정 환경을 같게 해주고 측정을 해야한다. 즉 변인을 잘 통제해야한다는 뜻이다.

ISA, Principle of Machine Design [컴퓨터구조]

Instruction : Language of the computer (ex MIPS) 인스트럭션이란 컴퓨터 언어라고 생각하면 되겠다. Instruction set: The vocabulary of commands that a computer understands 다시 말해서 컴퓨터의 종류가 다르다면 Instruction set 또한 다를 것이다. (대부분 같겠지만) 초기의 컴퓨터는 simple instruction set을 가지고 있었다. 물론 복잡한 형태로 CISC, Complex Instruction Set Computer 거치긴 했지만 RISC, Reduced Instruction Set Computer로 바뀌면서 다시 현대에는 simple로 되어가고 있다. 예를 들면 ARMv7: Similar ..

컴퓨터구조(3) Cloud TPU (2017Google I/O)

https://www.youtube.com/watch?v=UsDhVx6cOrw 참고하면 될 것이고 TPU 라는 것은 Tensor Processing Unit이라는 것인데 2017년 당시 GPU보다 30배정도 성능이 뛰어났고 전력비도 80배 가까이 좋았다. 구글에서는 유저가 늘어남에따라 규모가 커졌는데 오류율을 낮출 필요성을 느꼈다. 여기서 A.I와 M.L(인공지능과 머신러닝) 을 도입해야 겠다고 생각했고 엄청난 계산을 위한 TPU를 개발했다. 머신러닝은 2가지 요소로 볼 수 있는데 1. 훈련(Training) 2. 추론(Inference) 훈련은 집약적작업이며 방대한 계산을 요구하는 작업이고 추론은 실시간으로 이뤄져야하는 작업이다. 그래서 2017년 차세데 TPU인 cloud TPU를 발표했다. 이는 G..

CPU의 성능 비교, 측정 [컴퓨터구조]

이제는 프로세서에 대해서 알아보자 CPU, Central Processor Unit의 약자다. CPU의 칩 생산자의 최강자인 AMD와 INTEL을 볼까?? AMD를 앞에 놓은 것은.. 그냥 놨다. Intel의 펜티엄 AMD의 바르셀로나 CPU는 3가지 구성요소로 구성되어 있다. 1. Datapath -> 실제로 데이터를 가지고 연산을 수행 2. Control - 각각의 CPU의 컴포넌트들을 제어함 3. Cache Memory **(이건 우리가 알고 있는 그 캐시가 맞다) SRAM임 컴퓨터의 성능을 알 수 있는 2가지 지표가 있다. 사용자에 따라 중요한 지표가 있다. 1. Response Time(응답시간) 2. Throughput(처리량) 1. 작업의 시작부터 완료까지 걸리는 시간 -> 일반적으로 개인 ..

컴퓨터의 종류와 성능을 높이는 8가지 아이디어

크게 4가지로 분류할 수 있다. 1. 개인컴퓨터 2. 서버용 컴퓨터 3. 슈퍼컴퓨터 4. 임베디드 컴퓨터 2012년 이후로 PC시장은 포화되었고 스마트폰 시장의 규모가 커지면서 PMD에 대한 관심이 높아졌고 그에 따른 Computing기술이 요구될 것으로 예상됨. 컴퓨터 구조의 공부를 통해서 1. 프로그램이 어떻게 하드웨어를 움직이게 하는지를 알 수 있다. 2. 하드웨어와 소프트웨어의 인터페이스를 알 수 있다. 3. 프로그램 성능 결정 요인을 알 수 있다. 4. 하드웨어 설계를 어떻게 해야 성능이 나올지 알 수 있다. 5. 병렬처리에 대해 알 수 있다. 컴퓨터 성능을 높이기 위한 8가지 방법이 있다. 1. Design for Moore's Law 18개월에서 24개월이면 집적도가 2배가 되는 무어의 법칙..

[C언어] 자료구조 - 가중치 그래프 Weighted Graph + Floyd -4

저번 글을 너무 힘들게 써가지고,, 이건 좀 간단하게 해야 것습니다. 앞에 배운 Dijkstra와의 차이점은 얘는 실행하면 모든 정점사이의 최단경로를 한꺼번에 찾아준다는 것인디 어떻게 구성하느냐? 2차원 배열 A를 이용하여 3중 반복을 하는 루프로 구성 하는데 이게 무슨말이냐 하면은 그냥 반복한다는 것이다.ㅋㅋ •배열 A의 초기 값은 인접 행렬 weight •인접 행렬 weight 구성 1. i==j이면, weight[i][j]=0 2. 두 정점 i, j 사이에 간선이 존재하지 않으면, weight[i][j]=∞ 3. i, j 사이에 간선이 존재하면, weight[i][j]는 간선 (i, j)의 가중치 말보다 더 간단히 하자면 이런식이라는 것인데 조금 어려울 수 있으니 풀어서 설명해보자면 Ak [i][j..

[C언어] 자료구조 - 가중치 그래프 Weighted Graph + Prim - 2

이제 Prim 알고리즘에 대해서 알아볼 시간을 가질건데 짧게 말하자면 하나의 정점부터 시작하는 것은 같지만 앞에 배웠던 Kruskal과 다르게 트리에서 확장시켜 나가는 것이다. Kruskal은 그냥 간선을 오름차순으로 고르면서 나갔다면 Prim은 선택한 정점들이 기준이 되는것이다. 즉 n-1번 수행하면 n개의 정점과 이어져서 반복이 끝나고 최소비용 신장트리가 완성될 것이다. 알고리즘은 이렇게 되고 ㅊ은 오타인데 ㅋㅋㅋ 이미 넣어서 귀찮음 그림으로 표현하자면 이런식이다. 코드로 알아본다면 조금 추가해야할 부분이 생기는데 현재까지의 정점들 중에서 가장 가까운 정점을 찾는 과정인데 그래야 트리 기준으로 MST를 만들지 그치? 그래서 dist[]라는 배열을 쓸건디 dist[i]는 현재의 MST에서 i번째 정점까..

[C언어] 자료구조 - 가중치 그래프 Weighted Graph + Kruscal - 1

그래프에 대해서 많이 배웠는데 이제 진짜로 적용하려면 가중치 그래프라는 것을 배워야한다. 영어로는 위에 제목에 써놨다. 가중치 그래프라는 것은 간선에 비용이나 가중치가 추가된 그래프를 말하는데 이는 정점 사이의 연결상태뿐만 아니라 연결에 필요한 비용까지 함께 표현할 수 있다. 여기서 비용이란 꼭 돈이아니라 무엇이든 될 수 있는거다. 정말 돈이 될 수도, 아니면 간선의 길이가 될 수도 있는 것이다. 이렇게 도로를 표현하는 그래프에서는 도로의 길이를 표현하면 좋겠지?? 뭐 이렇게 지도로도 쓰일 수 있고, 사실 네트워크같은 곳에 많이 쓰인다고 한다. 예를 들어 지도에서 최단거리를 가고싶다..? 그렇다면 목적지까지 경로에서 가중치의 합이 가장 적은 경로가 가장 최단거리가 되겠지?? 우선 그렇다면 가중치 그래프를..

[C언어] 자료구조 - 그래프 탐색 - 5

탐색을 배웠는데, 이제 탐색도 응용해봐야 하는데 이게 좀 중요한 내용이다. 연결 성분이라는 것인데 connected component 라고 한다. 최대로 연결된 부분 그래프를 말한다. 연결성분을 찾기 위해서는 앞에서 배웠던 깊이, 너비 우선 탐색을 모두 이용할 수 있는데 상관없다. 그렇지만 예를 들어서 깊이 우선 탐색을 해보자 먼저 임의의 정점을 선택, 깊이우선탐색을 통해 연결되어 있는 모든 정점을 출력한다. 더 이상 연결된 정점이 없으면 그래프에서 아직 방문되지 않은 다른 정점을 선택해 반복한다. 이 과정을 그래프의 모든 정점이 방문될 때 까지 방문하면 모든 연결 성분을 찾을 수 있다. 연결 성분 탐색을 위해서는 각 정점마다 저런식으로 111 22 이렇게 저장하려면 저러한 번호를 저장할 공간이 필요한데..

[C언어] 자료구조 - 그래프 탐색 -4

그래프의 탐색은 가장 기본이라고 할 수 있을거야. 그럼에도 조금 나중에 배우는 이유는 제일 중요해서 그래 기본이 가장 중요한거지 그래프에서 탐색은 특정한 것을 찾는다기보다는 "시작 정점부터 차례대로 모든 정점들을 한 번씩 방문" 을 의미해 또한 연결되었는지 안되어있는지가 중요한 회로같은 경우 탐색만으로도 문제를 발견할 수 있는거지 •도로망 예: 특정 도시에서 다른 도시로 갈 수 있는지 여부 •전자회로 예: 특정 단자와 다른 단자의 연결 여부 우선 탐색에는 2가지 정도가 있어. 1. 깊이우선탐색(Depth First Search) DFS 2. 너비우선탐색(Breadth First Search) BFS 이렇게 2가지가 있는데 비교는 이제부터 할거야 1. 깊이우선탐색 깊이부터 가자 갈수 있을 때까지 계속 가다..

728x90
반응형