实验4 单功能流水线调度机构模拟

简介: 结合数据结构的相关知识,编写流水线调度模拟程序。

一、实验目的


  结合数据结构的相关知识,编写流水线调度模拟程序。


二、实验内容


  本实验选取四段单功能流水线浮点加作为例子,通过模拟单功能流水线调度过程,掌握流水线技术,学会计算流水线的吞吐率、加速比、效率。


三、实验代码

#include <iostream>
#include <string>
using namespace std;
const int SPACE = 4;// 功能部件数目
const int NUM = 5;// 需要流水处理的浮点加指令数目
const int TIME = NUM+SPACE-1;// 存储不同时间段各个功能部件内指令值
// ED:求阶差 EA:对阶MA:尾数加 NL:规格化
const string INSTRUCTIONS[] = {"NL", "MA", "EA", "ED"};
int ts[SPACE][TIME] = {0};// 初始化时空图
void print();// 输出时空图
void pipeline(int ts[SPACE][TIME]);// 流水线中指令状态转换算法
int main () {
cout << "Pipeline begins" << endl << endl;
pipeline(ts);
print();
cout << endl << "Pipeline ends" << endl << endl;
cout << "The Through Put of the pipeline is " <<  (double)NUM/TIME << "t" << endl;
cout << "The Speedup of the pipeline is " << ((double)NUM*SPACE)/TIME << endl;
cout << "The Efficiency of the pipeline is " << ((double)NUM*SPACE)/(TIME*SPACE) << endl;
return 0;
} 
void print() {
for (int i = 0; i < TIME; ++i) {
cout << "After time slice "<< i+1 << endl;
for (int j = 0 ; j < SPACE; ++j) {
if (i < NUM && ts[j][i] == 0) {
cout << endl;
} else {
for (int k = 0; k < i+1; ++k) {
if (ts[j][k] != 0) {
cout << INSTRUCTIONS[j]<<ts[j][k];
}
cout << "\t";
}
cout << endl;
}
}
}
}
void pipeline(int ts[SPACE][TIME]) {
int tempSpace = 0;// 记录处理的指令号
int tempTime = 0;// 记录时间轴的变化
for (int s = SPACE-1; s >= 0; s--) {
tempSpace = 1;
for (int t = tempTime; t < TIME; t++) {
ts[s][t] = tempSpace++;
}
tempTime++;
}
}


四、实验结果


相关文章
|
弹性计算 Kubernetes 安全
实验四:流水线部署 | 学习笔记
快速学习实验四:流水线部署
273 0
实验四:流水线部署 | 学习笔记
|
弹性计算 Kubernetes Cloud Native
企业级运维之云原生与Kubernetes实战课程 第四章第6讲 实验四:流水线部署
本实验通过在ack集群上部署jenkins,来实现一键式自动拉取github仓库上的代码,编译、构建镜像、部署deployment,来完成流水线部署的目的。
企业级运维之云原生与Kubernetes实战课程 第四章第6讲 实验四:流水线部署
|
7天前
|
Kubernetes 安全 Devops
【云效流水线 Flow 测评】驾驭云海:五大场景下的云效Flow实战部署评测
云效是一款企业级持续集成和持续交付工具,提供免费、高可用的服务,集成阿里云多种服务,支持蓝绿、分批、金丝雀等发布策略。其亮点包括快速定位问题、节省维护成本、丰富的企业级特性及与团队协作的契合。基础版和高级版分别针对小型企业和大规模团队,提供不同功能和服务。此外,云效对比Jenkins在集成阿里云服务和易用性上有优势。通过实战演示了云效在ECS和K8s上的快速部署流程,以及代码质量检测和AI智能排查功能,展示了其在DevOps流程中的高效和便捷,适合不同规模的企业使用。本文撰写用时5小时,请各位看官帮忙多多支持,如有建议也请一并给出,您的建议能帮助我下一篇更加出色。
216857 19
|
7天前
|
运维 Devops
云效产品使用报错问题之yaml流水线里的 ${CI_COMMIT_REF_NAME} 失效如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
云效产品使用报错问题之yaml流水线里的 ${CI_COMMIT_REF_NAME} 失效如何解决
|
4天前
|
弹性计算 Java jenkins
开箱即用的企业级CICD工具-云效流水线 Flow
【5月更文挑战第10天】开箱即用的企业级CICD工具-云效流水线 Flow
|
7天前
|
运维 监控 数据可视化
云效流水线 Flow 评测报告
作为运维工程师,我有使用Jenkins和GitLab CI/CD的经验。Flow在新人上手方面表现出色,界面清晰,文档支持良好。产品功能全面,支持多种语言和环境,性能稳定,且具备开放性,能自定义和扩展。虽然在可视化和监控上有改进空间,但相比其他CI/CD工具,Flow在成本、功能和性能上颇具竞争力,适合团队使用。我推荐采用云效流水线Flow提升研发效率和质量。
|
7天前
|
JavaScript 数据可视化 jenkins
云效流水线 Flow测评报告
该内容是一位维护人员对于CI/CD工具Flow的使用体验和改进建议。他提到Flow对新人友好,但主要与云效和Codeup关联性强。他建议:1) YML和可视化编排能互相转换;2) 流水线部署时可按参数选择主机组;3) Webhook触发器应可修改或重置地址以应对人事变动;4) 优化部署脚本执行,解决如`#!/bin/bash`导致的执行问题;5) 强化部署脚本模板和检查机制;6) 解决偶现的node.js打包异常。
125 4
|
7天前
|
监控 数据可视化 测试技术
云效流水线 Flow 评测:助力企业高效完成 CICD 全流程
云效流水线 Flow 评测显示其在CI/CD领域表现出色,尤其适合新人上手。具备直观的可视化编辑和Yaml化选项,丰富的文档教程,以及全面的功能,如多代码源支持、自动化测试、稳定部署及阿里云服务集成。此外,Flow性能稳定,监控功能强,且高度可扩展,支持插件和API集成。相比其他工具,Flow在成本、功能和性能上有竞争优势,特别适合与阿里云生态结合的团队。作为一款易用且性价比高的工具,Flow值得推荐给各类企业。
238 11
|
7天前
|
弹性计算 安全 Java
基于云效流水线 Flow的测评报告
基于云效流水线 Flow的测评报告
367 6
基于云效流水线 Flow的测评报告
|
7天前
|
弹性计算 Java Maven
云效流水线 Flow 评测
Java开发团队青睐云效流水线Flow作为CI/CD工具,因其对Java/Maven的良好支持,直观界面,与阿里云ECS的集成及实时反馈。Flow功能全面,开放且可定制,尤其适合已使用阿里云服务的团队。尽管在非阿里云服务集成上有改进空间,但Flow的性价比和端到端支持使其成为推荐选择。
73 2

热门文章

最新文章