⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpdmon.java

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
public class MPDMon extends javax.swing.JFrame{    private int port;    private String host;    public String mpd_id;    private String selecttype;    private String nodesstring;    public int jobid;    private String[] load_data;    private String[] mem_data;    private javax.swing.JCheckBox load_indep;    private javax.swing.JLabel load_num;    private javax.swing.JLabel time_num;    private javax.swing.JPanel nodepanel;    private javax.swing.JPanel load_output;    private javax.swing.JPanel mem_output;    private javax.swing.JPanel myr_output;    private javax.swing.JPanel options;    private javax.swing.JPanel load_options;    private javax.swing.JPanel mem_options;    private javax.swing.JPanel myr_options;    private javax.swing.JPanel sys_options;    private javax.swing.JPanel type_options;    private javax.swing.JScrollPane load_scroller;    private javax.swing.JScrollPane mem_scroller;    private javax.swing.JScrollPane options_scroller;    private javax.swing.JTextField rangetext;    private javax.swing.JTextField jobidtext;    private javax.swing.JButton nodes_jobid_button;    private javax.swing.JButton nodes_range_button;    private MyrTable myrtable;    private MyrTable memtable;    private myr_counter_box myrboxes;    private mem_counter_box memboxes;    private int updatetime;    private javax.swing.JTabbedPane main_tabpane;    private mpd_procs procs;    private java.net.Socket mpdsock;    private java.io.InputStreamReader in;    private java.io.OutputStreamWriter out;    private java.util.LinkedList datatypes;    private NodeParser nparser;    public static void main(String[] args)    {	long time;	MPDMon MonWin;	if (args.length < 2)	    {		System.out.println("Usage: java MPDMon <host> <port>");		System.exit(1);	    }	MonWin = new MPDMon(args);	MonWin.pack();	MonWin.setVisible(true);	for (;;)	    {		time = System.currentTimeMillis();		while (System.currentTimeMillis() - time < MonWin.getUpdateTime())		    {		    }		MonWin.update(MonWin.mpd_id, MonWin.jobid);		MonWin.repaint();	    }    }    public MPDMon(String[] args)    {	super("MPD Remote Monitor");	// System.out.println("started constructor");	this.addWindowListener(new WindowCloser());	this.addComponentListener(new WindowResizer());	Object[] sockstuff;	int load_length;	int mem_length;	CheckBoxListener clisten;	javax.swing.JSlider load_slide;	javax.swing.JSlider time_slide;	javax.swing.JCheckBox load_type_box;	javax.swing.JCheckBox mem_type_box;	javax.swing.JCheckBox myr_type_box;	javax.swing.JButton mem_types_aux;	javax.swing.JButton myr_types_aux;	javax.swing.JButton myr_reset;	javax.swing.JRadioButton nodes_range;	javax.swing.JRadioButton nodes_jobid;	javax.swing.JRadioButton nodes_all;	javax.swing.JPanel rangepanel;	javax.swing.JPanel jobidpanel;	javax.swing.JPanel radiobuttonpanel;	javax.swing.JPanel textpanel;	javax.swing.JLabel rangelabel;	javax.swing.JLabel jobidlabel;	javax.swing.ButtonGroup bgroup;	NodeSelectListener nslisten;	ReqTypeOKButtonListener rtoblisten;	mpd_id = "";	selecttype = "all";	nodesstring = "";	myrboxes = new myr_counter_box();	memboxes = new mem_counter_box();	myrtable = new MyrTable();	memtable = new MyrTable();	nodepanel = new javax.swing.JPanel();	load_options = new javax.swing.JPanel();	mem_options = new javax.swing.JPanel();	myr_options = new javax.swing.JPanel();	sys_options = new javax.swing.JPanel();	rangepanel = new javax.swing.JPanel();	jobidpanel = new javax.swing.JPanel();	textpanel = new javax.swing.JPanel();	radiobuttonpanel = new javax.swing.JPanel();	nslisten = new NodeSelectListener();	rtoblisten = new ReqTypeOKButtonListener();	nparser = new NodeParser();	datatypes = new java.util.LinkedList();	load_options.setBorder(new javax.swing.border.TitledBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Load average options")));	mem_options.setBorder(new javax.swing.border.TitledBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Memory use options")));	myr_options.setBorder(new javax.swing.border.TitledBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Myrinet counter options")));	sys_options.setBorder(new javax.swing.border.TitledBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "System options")));	javax.swing.JLabel load_options_label = new javax.swing.JLabel("Load average history:");	javax.swing.JLabel mem_options_label = new javax.swing.JLabel("Memory use history:");	javax.swing.JLabel time_options_label = new javax.swing.JLabel("Update frequency(ms)");	rangelabel = new javax.swing.JLabel("Range:");	jobidlabel = new javax.swing.JLabel("Job ID:");	bgroup = new javax.swing.ButtonGroup();	host = args[0];	port = Integer.parseInt(args[1]);	procs = new mpd_procs();	//***********************	updatetime = 3000;	load_indep = new javax.swing.JCheckBox("Graphs scale independently", true);	load_num = new javax.swing.JLabel(Integer.toString(100));	load_length = 100;	mem_length = 100;	//***********************	nodes_all = new javax.swing.JRadioButton("All nodes", true);	nodes_range = new javax.swing.JRadioButton("Range/List of nodes");	nodes_jobid = new javax.swing.JRadioButton("Job ID");	nodes_all.setActionCommand("nodes_all");	nodes_range.setActionCommand("nodes_range");	nodes_jobid.setActionCommand("nodes_jobid");	nodes_all.addActionListener(nslisten);	nodes_range.addActionListener(nslisten);	nodes_jobid.addActionListener(nslisten);	rangetext = new javax.swing.JTextField(10);	jobidtext = new javax.swing.JTextField(4);	//	rangetext.setMaximumSize(new java.awt.Dimension(30,10));	//	jobidtext.setMaximumSize(new java.awt.Dimension(30,10));	rangetext.setEnabled(false);	jobidtext.setEnabled(false);	time_num = new javax.swing.JLabel(Integer.toString(updatetime));	load_slide = new javax.swing.JSlider(10, 999, load_length);	time_slide = new javax.swing.JSlider(500, 5000, updatetime);	load_type_box = new javax.swing.JCheckBox("Load Averages", true);	mem_type_box = new javax.swing.JCheckBox("Memory Statistics", false);	myr_type_box = new javax.swing.JCheckBox("Myrinet Statistics", false);	clisten = new CheckBoxListener(load_type_box, mem_type_box, myr_type_box);	load_type_box.addItemListener(clisten);	mem_type_box.addItemListener(clisten);	myr_type_box.addItemListener(clisten);	mem_types_aux = new javax.swing.JButton("Memory Statistics");	mem_types_aux.addMouseListener(new MemButtonListener());	myr_types_aux = new javax.swing.JButton("Myrinet Counters");	myr_types_aux.addMouseListener(new MyrButtonListener());	myr_reset = new javax.swing.JButton("Reset Counters");	myr_reset.addMouseListener(new ResetListener());	nodes_jobid_button = new javax.swing.JButton("OK");	nodes_range_button = new javax.swing.JButton("OK");	nodes_jobid_button.setActionCommand("jobid");	nodes_range_button.setActionCommand("range");	nodes_jobid_button.addActionListener(rtoblisten);	nodes_range_button.addActionListener(rtoblisten);	nodes_jobid_button.setEnabled(false);	nodes_range_button.setEnabled(false);	mpd_id = args[0] + "_" + Integer.toString(port);	// System.out.println("about to try connect...");	sockstuff = connect(host, port, mpd_id);	// System.out.println("connected!");	mpdsock = (java.net.Socket)sockstuff[0];	in = (java.io.InputStreamReader)sockstuff[1];	out = (java.io.OutputStreamWriter)sockstuff[2];	load_output = new javax.swing.JPanel();	mem_output = new javax.swing.JPanel();	myr_output = new javax.swing.JPanel();	options = new javax.swing.JPanel();	type_options = new javax.swing.JPanel();	main_tabpane = new javax.swing.JTabbedPane();	load_output.setLayout(new java.awt.GridLayout(0,10));	mem_output.setLayout(new java.awt.FlowLayout());	nodepanel.setLayout(new java.awt.GridLayout(0,5));	//	rangepanel.setLayout(new java.awt.GridLayout(1,2));	//	jobidpanel.setLayout(new java.awt.GridLayout(1,2));	radiobuttonpanel.setLayout(new java.awt.GridLayout(3,1));	textpanel.setLayout(new java.awt.GridLayout(2,1));	myr_output.setLayout(new javax.swing.BoxLayout(myr_output, javax.swing.BoxLayout.Y_AXIS));	mem_output.setLayout(new javax.swing.BoxLayout(mem_output, javax.swing.BoxLayout.Y_AXIS));	myr_output.add(myr_reset);	myr_output.add(myrtable);	mem_output.add(memtable);	options.setLayout(new javax.swing.BoxLayout(options, javax.swing.BoxLayout.Y_AXIS));	type_options.setLayout(new javax.swing.BoxLayout(type_options, javax.swing.BoxLayout.Y_AXIS));	bgroup.add(nodes_all);	bgroup.add(nodes_range);	bgroup.add(nodes_jobid);	radiobuttonpanel.add(nodes_all);	radiobuttonpanel.add(nodes_range);	radiobuttonpanel.add(nodes_jobid);	rangepanel.add(rangelabel);	rangepanel.add(rangetext);	rangepanel.add(nodes_range_button);	jobidpanel.add(jobidlabel);	jobidpanel.add(jobidtext);	jobidpanel.add(nodes_jobid_button);	textpanel.add(rangepanel);	textpanel.add(jobidpanel);	load_options.add(load_options_label);	load_options.add(load_slide);	load_options.add(load_num);	//	load_options.add(load_indep);	mem_options.add(mem_options_label);	mem_options.add(mem_types_aux);	myr_options.add(myr_types_aux);	sys_options.add(time_options_label);	sys_options.add(time_slide);	sys_options.add(time_num);	sys_options.add(radiobuttonpanel);	sys_options.add(textpanel);	type_options.add(load_type_box);	type_options.add(mem_type_box);	type_options.add(myr_type_box);	load_slide.addChangeListener(new SliderListener(load_output, load_num));	//mem_slide.addChangeListener(new SliderListener());	time_slide.addChangeListener(new SliderListener(time_num));	//load_indep.addItemListener(new CheckBoxListener());	load_scroller = new javax.swing.JScrollPane(load_output, javax.swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);        mem_scroller = new javax.swing.JScrollPane(mem_output, javax.swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);	options_scroller = new javax.swing.JScrollPane(options, javax.swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);	options.add(sys_options);	//***********************    	toggleVal("loadavg", true);	//toggleVal("memusage", true);	//toggleVal("myrinfo", true);	//***********************	main_tabpane.addTab("Nodes", null, nodepanel, "Node list overview");	main_tabpane.addTab("Options", null, options_scroller, "Display options");	main_tabpane.addTab("Display Types", null, type_options, "Types of data to display");	this.getContentPane().add(main_tabpane);	repaint();	// System.out.println("finished constructor");    }           public void toggleVal(String val, boolean enabled)    {	if (enabled)	    {		datatypes.add(val);		if (val.equals("loadavg"))		    {			main_tabpane.addTab("System Load", null, load_scroller, "System load levels");			options.add(load_options);		    }		else if (val.equals("memusage"))		    {			main_tabpane.addTab("Memory Usage", null, mem_scroller, "Memory Statistics");			options.add(mem_options);		    }		else if (val.equals("myrinfo"))		    {			main_tabpane.addTab("Myrinet Counters", null, myr_output, "Myrinet card *_cnt numbers");			options.add(myr_options);		    }	    }	else	    {		datatypes.remove(val);		if (val.equals("loadavg"))		    {			main_tabpane.remove(load_scroller);			options.remove(load_options);		    }		else if (val.equals("memusage"))		    {			main_tabpane.remove(mem_scroller);			options.remove(mem_options);		    }		else if (val.equals("myrinfo"))		    {			main_tabpane.remove(myr_output);			options.remove(myr_options);		    }	    }	repaint();    }        public void update(String id, int jobid)    {	int tindex;	double tdata;	Double tDouble;	String tString;	java.util.LinkedList removed = getData(id, jobid);	java.util.ArrayList procVector = procs.toArrayList();	if (datatypes.indexOf("loadavg") != -1)	    {		java.awt.Component[] load_comps = load_output.getComponents();		String load_huge = "";		for (int i = 0; i < load_comps.length; i++)		    {			load_huge = load_huge.concat(((LoadGraph)load_comps[i]).getId());		    }		if (nodepanel.getComponentCount() > load_comps.length)		    {			for (int i = 0; i < nodepanel.getComponentCount(); i++)			    {				if (load_huge.indexOf(((javax.swing.JCheckBox)nodepanel.getComponent(i)).getText()) == -1)				    {					load_output.add(new LoadGraph(((javax.swing.JCheckBox)nodepanel.getComponent(i)).getText(), 100, true));				    }			    }		    }		for (int i = 0; i < load_comps.length; i++)		    {			if (removed.indexOf(((LoadGraph)load_comps[i]).getId()) != -1)			    {				load_output.remove((LoadGraph)load_comps[i]);			    }			else			    {				for (tindex = 0; tindex < procVector.size(); tindex++)				    {					if (((Node)procVector.get(tindex)).name.equals(((LoadGraph)load_comps[i]).getId()))					    break;				    }				tString = (String)(((Node)procVector.get(tindex)).loadavg);				tDouble = new Double(Double.parseDouble(tString));				tdata = tDouble.doubleValue();				((LoadGraph)load_comps[i]).update_data(tdata);				for (int j = 0; j < nodepanel.getComponentCount(); j++)				    {					if (((javax.swing.JCheckBox)nodepanel.getComponent(j)).getText().equals(((LoadGraph)load_comps[i]).getId()))					    {						load_comps[i].setVisible(((javax.swing.JCheckBox)nodepanel.getComponent(j)).isSelected());						load_comps[i].invalidate();					    }				    }			    }		    }	    }	if (datatypes.indexOf("memusage") != -1)	    {		java.util.LinkedList columnnames = new java.util.LinkedList();		java.util.LinkedList data = new java.util.LinkedList();		java.util.LinkedList tempv = new java.util.LinkedList();		java.util.LinkedList memtypes = new java.util.LinkedList();		Node tempnode;		int index;		columnnames.add("Node");		javax.swing.JPanel mempanel = (javax.swing.JPanel)memboxes.getContentPane().getComponent(0);		for (int i = 0; i < mempanel.getComponentCount() - 1; i++)		    {			if (((javax.swing.JCheckBox)mempanel.getComponent(i)).isSelected())			    {				memtypes.add(((javax.swing.JCheckBox)mempanel.getComponent(i)).getText());			    }		    }		for (int i = 0; i < nodepanel.getComponentCount(); i++)		    {			if (((javax.swing.JCheckBox)nodepanel.getComponent(i)).isSelected())			    {				index = procs.indexOf(((javax.swing.JCheckBox)nodepanel.getComponent(i)).getText());				tempv.add(procs.getData(index, "name"));				for (int j = 0; j < memtypes.size(); j++)				    {					tempv.add(procs.getData(index, (String)memtypes.get(j)));				    }				data.add(tempv.clone());				tempv.clear();			    }		    }		memtypes.addFirst("Node");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -