<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
		<id>https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?action=history&amp;feed=atom&amp;title=%E5%9F%BA%E6%9C%AC%EF%BC%94%E3%81%AE%E8%A3%9C%E8%B6%B3%EF%BC%88each%E3%81%A7%E3%81%AE%E9%80%9F%E5%BA%A6%E6%A4%9C%E8%A8%BC%EF%BC%89</id>
		<title>基本４の補足（eachでの速度検証） - 変更履歴</title>
		<link rel="self" type="application/atom+xml" href="https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?action=history&amp;feed=atom&amp;title=%E5%9F%BA%E6%9C%AC%EF%BC%94%E3%81%AE%E8%A3%9C%E8%B6%B3%EF%BC%88each%E3%81%A7%E3%81%AE%E9%80%9F%E5%BA%A6%E6%A4%9C%E8%A8%BC%EF%BC%89"/>
		<link rel="alternate" type="text/html" href="https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?title=%E5%9F%BA%E6%9C%AC%EF%BC%94%E3%81%AE%E8%A3%9C%E8%B6%B3%EF%BC%88each%E3%81%A7%E3%81%AE%E9%80%9F%E5%BA%A6%E6%A4%9C%E8%A8%BC%EF%BC%89&amp;action=history"/>
		<updated>2026-06-13T16:13:17Z</updated>
		<subtitle>このウィキのこのページに関する変更履歴</subtitle>
		<generator>MediaWiki 1.23.6</generator>

	<entry>
		<id>https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?title=%E5%9F%BA%E6%9C%AC%EF%BC%94%E3%81%AE%E8%A3%9C%E8%B6%B3%EF%BC%88each%E3%81%A7%E3%81%AE%E9%80%9F%E5%BA%A6%E6%A4%9C%E8%A8%BC%EF%BC%89&amp;diff=14836&amp;oldid=prev</id>
		<title>2016年4月14日 (木) 02:45にTakahiroによる</title>
		<link rel="alternate" type="text/html" href="https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?title=%E5%9F%BA%E6%9C%AC%EF%BC%94%E3%81%AE%E8%A3%9C%E8%B6%B3%EF%BC%88each%E3%81%A7%E3%81%AE%E9%80%9F%E5%BA%A6%E6%A4%9C%E8%A8%BC%EF%BC%89&amp;diff=14836&amp;oldid=prev"/>
				<updated>2016-04-14T02:45:18Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;←前の版&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;2016年4月14日 (木) 02:45時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;行73:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;行73:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;/tr&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;/tr&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/table&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/table&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;いずれにしてもSizeOutは5回処理されていますが、(2)の場合は(1)に比べ時間が削減されています。同じマシン内においてeachの処理ではリンクを利用することにより同じ入力ファイルを何度もコピーすることを避けていることが確認できます。つまり入力ファイルのサイズを特に気にすることなくeachで並列処理を行えることが分かります。&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;では、eachとallの速度の違いを見てみましょう。いずれもA&lt;/del&gt;.mrcの情報をそれぞれ5回出力している処理ですが、(3)ではSizeOutをall出力とし、(4)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ではSizeOutをeach出力としています。eachを実行するときは&lt;/del&gt;[[pione-client]]のオプション-t 5として５つの並列処理を行って、動作を比較してみます。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;いずれにしてもSizeOutは5回処理されていますが、(2)の場合は(1)に比べ時間が削減されています。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;同じマシン内においてeachの処理ではリンクを利用することにより同じ入力ファイルを何度もコピーすることを避けていることが確認できます。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;つまり入力ファイルのサイズを特に気にすることなくeachで並列処理を行えることが分かります。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;　では、eachとallの速度の違いを見てみましょう。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;いずれもA&lt;/ins&gt;.mrcの情報をそれぞれ5回出力している処理ですが、(3)ではSizeOutをall出力とし、(4)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ではSizeOutをeach出力としています。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;eachを実行するときは&lt;/ins&gt;[[pione-client]]のオプション-t 5として５つの並列処理を行って、動作を比較してみます。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;tr&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;tr&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;行130:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;行135:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;/tr&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;/tr&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;table&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;table&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;eachによる並列処理により、時間が大幅に削減されていることが確認できます。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;eachによる並列処理により、時間が大幅に削減されていることが確認できます。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Takahiro</name></author>	</entry>

	<entry>
		<id>https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?title=%E5%9F%BA%E6%9C%AC%EF%BC%94%E3%81%AE%E8%A3%9C%E8%B6%B3%EF%BC%88each%E3%81%A7%E3%81%AE%E9%80%9F%E5%BA%A6%E6%A4%9C%E8%A8%BC%EF%BC%89&amp;diff=14835&amp;oldid=prev</id>
		<title>2016年4月14日 (木) 02:43にTakahiroによる</title>
		<link rel="alternate" type="text/html" href="https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?title=%E5%9F%BA%E6%9C%AC%EF%BC%94%E3%81%AE%E8%A3%9C%E8%B6%B3%EF%BC%88each%E3%81%A7%E3%81%AE%E9%80%9F%E5%BA%A6%E6%A4%9C%E8%A8%BC%EF%BC%89&amp;diff=14835&amp;oldid=prev"/>
				<updated>2016-04-14T02:43:26Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;←前の版&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;2016年4月14日 (木) 02:43時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;行1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;行1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;eachを利用すれば、各々のファイル毎で並列処理を行うことができます。このとき、各タスクごとに入力ファイルがコピーされ、処理が進んでいきます。&lt;/del&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;　eachを利用すれば、各々のファイル毎で並列処理を行うことができます。このとき、各タスクごとに入力ファイルがコピーされ、処理が進んでいきます。&lt;/ins&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;しかし、異なるタスクで同じ入力ファイルを使うときでも毎回コピー処理が行われると、無駄なコピー処理が発生する、という問題があります。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;しかし、異なるタスクで同じ入力ファイルを使うときでも毎回コピー処理が行われると、無駄なコピー処理が発生する、という問題があります。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;そこで[[PIONE]]では、同じファイルについてはリンクを作成・使用することによって、逐次コピーする時間を削減しています。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;そこで[[PIONE]]では、同じファイルについてはリンクを作成・使用することによって、逐次コピーする時間を削減しています。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;例えば、下記のようなmrcファイルの情報を出力する２つのコードがあったとします。&lt;/del&gt;(1)は全てのファイル(A.mrc, B.mrc, C.mrc, D.mrc, E.mrc)について１回ずつSizeOutを呼び、(2)は１つのA.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;mrcファイルについて５回SizeOutを呼ぶ仕組みとしています。サイズの大きいファイル（512×512×512の&lt;/del&gt;[[mrc]]画像：[[ mrcImageNullImageCreate]]を使用）を入力として動作を比較します。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;　例えば、下記のようなmrcファイルの情報を出力する２つのコードがあったとします。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(1)は全てのファイル(A.mrc, B.mrc, C.mrc, D.mrc, E.mrc)について１回ずつSizeOutを呼び、&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(2)は１つのA.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;mrcファイルについて５回SizeOutを呼ぶ仕組みとしています。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;サイズの大きいファイル（512×512×512の&lt;/ins&gt;[[mrc]]画像：[[ mrcImageNullImageCreate]]を使用）を入力として動作を比較します。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;tr&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;lt;tr&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Takahiro</name></author>	</entry>

	<entry>
		<id>https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?title=%E5%9F%BA%E6%9C%AC%EF%BC%94%E3%81%AE%E8%A3%9C%E8%B6%B3%EF%BC%88each%E3%81%A7%E3%81%AE%E9%80%9F%E5%BA%A6%E6%A4%9C%E8%A8%BC%EF%BC%89&amp;diff=14833&amp;oldid=prev</id>
		<title>Takahiro: ページの作成:「eachを利用すれば、各々のファイル毎で並列処理を行うことができます。このとき、各タスクごとに入力ファイルがコピーされ...」</title>
		<link rel="alternate" type="text/html" href="https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?title=%E5%9F%BA%E6%9C%AC%EF%BC%94%E3%81%AE%E8%A3%9C%E8%B6%B3%EF%BC%88each%E3%81%A7%E3%81%AE%E9%80%9F%E5%BA%A6%E6%A4%9C%E8%A8%BC%EF%BC%89&amp;diff=14833&amp;oldid=prev"/>
				<updated>2016-04-14T02:40:45Z</updated>
		
		<summary type="html">&lt;p&gt;ページの作成:「eachを利用すれば、各々のファイル毎で並列処理を行うことができます。このとき、各タスクごとに入力ファイルがコピーされ...」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;eachを利用すれば、各々のファイル毎で並列処理を行うことができます。このとき、各タスクごとに入力ファイルがコピーされ、処理が進んでいきます。&amp;lt;br&amp;gt;&lt;br /&gt;
しかし、異なるタスクで同じ入力ファイルを使うときでも毎回コピー処理が行われると、無駄なコピー処理が発生する、という問題があります。&amp;lt;br&amp;gt;&lt;br /&gt;
そこで[[PIONE]]では、同じファイルについてはリンクを作成・使用することによって、逐次コピーする時間を削減しています。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
例えば、下記のようなmrcファイルの情報を出力する２つのコードがあったとします。(1)は全てのファイル(A.mrc, B.mrc, C.mrc, D.mrc, E.mrc)について１回ずつSizeOutを呼び、(2)は１つのA.mrcファイルについて５回SizeOutを呼ぶ仕組みとしています。サイズの大きいファイル（512×512×512の[[mrc]]画像：[[ mrcImageNullImageCreate]]を使用）を入力として動作を比較します。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;th&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
		&amp;lt;th&amp;gt;コード&amp;lt;/th&amp;gt;&lt;br /&gt;
		&amp;lt;th&amp;gt;入力ファイル&amp;lt;/th&amp;gt;&lt;br /&gt;
		&amp;lt;th&amp;gt;1ファイル毎のSizeOut&amp;lt;/th&amp;gt;&lt;br /&gt;
		&amp;lt;th&amp;gt;処理結果（[[ProM]]）&amp;lt;/th&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;(1)&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Rule Main&lt;br /&gt;
	input '*.mrc'&lt;br /&gt;
	output '*.txt'.all&lt;br /&gt;
Flow&lt;br /&gt;
	rule SizeOut {val:1}&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Rule SizeOut&lt;br /&gt;
	input '*.mrc'&lt;br /&gt;
	output '{$I[1][1]}{$val}.txt'&lt;br /&gt;
	param $val&lt;br /&gt;
Action&lt;br /&gt;
	wc {$I[1]} &amp;gt; {$O[1]}&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			A.mrc&amp;lt;br&amp;gt;&lt;br /&gt;
			B.mrc&amp;lt;br&amp;gt;&lt;br /&gt;
			C.mrc&amp;lt;br&amp;gt;&lt;br /&gt;
			D.mrc&amp;lt;br&amp;gt;&lt;br /&gt;
			E.mrc&amp;lt;br&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;1回&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;[[画像:Outdata-PIONE-Advanced4-1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;(2)&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Rule Main&lt;br /&gt;
	input 'A.mrc'&lt;br /&gt;
	output '*.txt'.all&lt;br /&gt;
Flow&lt;br /&gt;
	rule SizeOut {val:1.upto(5)}&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Rule SizeOut&lt;br /&gt;
	input 'A.mrc'&lt;br /&gt;
	output 'A{$val}.txt'&lt;br /&gt;
	param $val&lt;br /&gt;
Action&lt;br /&gt;
	wc {$I[1]} &amp;gt; {$O[1]}&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			A.mrc&amp;lt;br&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;5回&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;[[画像:Outdata-PIONE-Advanced4-2.png|255px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
いずれにしてもSizeOutは5回処理されていますが、(2)の場合は(1)に比べ時間が削減されています。同じマシン内においてeachの処理ではリンクを利用することにより同じ入力ファイルを何度もコピーすることを避けていることが確認できます。つまり入力ファイルのサイズを特に気にすることなくeachで並列処理を行えることが分かります。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
では、eachとallの速度の違いを見てみましょう。いずれもA.mrcの情報をそれぞれ5回出力している処理ですが、(3)ではSizeOutをall出力とし、(4)ではSizeOutをeach出力としています。eachを実行するときは[[pione-client]]のオプション-t 5として５つの並列処理を行って、動作を比較してみます。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;th&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
		&amp;lt;th&amp;gt;コード&amp;lt;/th&amp;gt;&lt;br /&gt;
		&amp;lt;th&amp;gt;処理結果（[[ProM]]）&amp;lt;/th&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;(3) all&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Rule Main&lt;br /&gt;
	input 'A.mrc'&lt;br /&gt;
	output '*.txt'.all&lt;br /&gt;
Flow&lt;br /&gt;
	rule SizeOut&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Rule SizeOut&lt;br /&gt;
	input 'A.mrc'&lt;br /&gt;
	output '*.txt'.all&lt;br /&gt;
Action&lt;br /&gt;
	for (( i=1; i&amp;lt;6; i++ ))&lt;br /&gt;
	do&lt;br /&gt;
		wc {$I[1]} &amp;gt; &amp;quot;{$I[1][1]}$i.txt&amp;quot;&lt;br /&gt;
	done&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;[[画像:Outdata-PIONE-Advanced4-3.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;(4) each&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Rule Main&lt;br /&gt;
	input 'A.mrc'&lt;br /&gt;
	output '*.txt'.all&lt;br /&gt;
Flow&lt;br /&gt;
	rule SizeOut {val:1.upto(5)}&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Rule SizeOut&lt;br /&gt;
	input 'A.mrc'&lt;br /&gt;
	output '{$I[1][1]}{$val}.txt'&lt;br /&gt;
	param $val&lt;br /&gt;
Action&lt;br /&gt;
	wc {$I[1]} &amp;gt; {$O[1]}&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;[[画像:Outdata-PIONE-Advanced4-4.png|410px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
eachによる並列処理により、時間が大幅に削減されていることが確認できます。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Takahiro</name></author>	</entry>

	</feed>