���[�U�[��0.5�b�̃t���[�Y�ŃX�g���X�������A3�b�̃t���[�Y�̓o�O���Ɣ��f����B�����Ȃ�Ȃ����߂̔������p�^�[���Ƃ́H
powered by Insider.NET
�@�u�G���h�E���[�U�[�́A0.5�b�̃t���[�Y�ŃX�g���X�������A3�b�̃t���[�Y�̓o�O���Ǝv���v�B�́A��k�����Ɍ����Ă݂����t�����A���̔���������ɁA���Ƃ݂Ȏv���Ă��邱�Ƃ炵���B
�@���Ƀ��o�C���[��������OS�ł́A�������̈����A�v���P�[�V������OS�ɂ���ċ����I�����ꂽ��A�}�[�P�b�g�v���C�X�ł̐R���ɗ������肷��B�t���[�Y���Ȃ��A�v���P�[�V������肪�܂��܂��d�v�ɂȂ��Ă���B
�@�����ŁA�{�e�ł́A�t���[�Y���Ȃ��A�v���P�[�V�������ɕK�v�ƂȂ�u�������v*1�ɂ��Đ������Ă����B
*1�@���Ԃ̂�����API�ɑ��āA�����������ł������Ȃ��P�[�X�������Ă��Ă���BWindows 8�̐V����Windows API�iWinRT�j�ł́A50�~���b�ȏォ����API���A���ׂĔ��ȃ��\�b�h�Ƃ��Ē��邻�����B
�@�l�b�g���[�NI/O�̂悤�ɑ҂����Ԃ̔������鏈����A�d�����������������Ƃ��ɂ́A���������s���ׂ����B�܂��A�u�}���`�R�A����ɔ����Ĕ����d�v�v�ƌ����n�߂Ă���v�����B
�@����͂����ƌ���ꑱ���Ă������Ƃł���A���R�A���܂łł��A�ł��邱�Ƃ͂ł����B�������A�f�b�h�E���b�N�Ȃǂ̐[���ȃo�O���o�����A���A�p�t�H�[�}���X�̂悢�A�������������͓���A�o���L�x�Œm���̂���J���҂ɂ����ł��Ȃ������B���̂��߁A�Ë��I�ɁA�t���[�Y����A�v���P�[�V���������e����Ă����B
�@�������A���̊ԁAOS���x���A���C�u�����E���x���ł͖��X�Ɣ������Ɋւ���@�\����������Ă��Ă���B�����čŋ߂ł́A���̐��ʂ��A�v���P�[�V�����ɔ��f�������B���낻��A�u����v�𗝗R�ɃA�v���P�[�V�����̃t���[�Y�����e����鎞��͏I�����}���悤�Ƃ��Ă���̂��B
�@.NET Framework�ɂ����Ă��A�o�[�W����4�Œlj����ꂽTask�N���X�iSystem.Threading.Tasks���O��ԁj�̒lj��i�ƁA����ɔ����X���b�h�E�v�[���̐��\���P�j�ɂ���āA�������������Ԋy�ɂȂ����B�����ɁA�f�[�^������������߂�Parallel�N���X�i�����O��ԁj������Ă���B
�@�܂��A�����o�[�W�����ł́AC# 5.0�ɔ�����t���[���������߂�async�^await�\��*2��A.NET Framework 4.5�ɔ��f�[�^�t���[���������߂�TPL Dataflow���C�u����*3���lj������\��ł���B
*2�@���݁ACTP�iCommunity Technology Preview�F �x�[�^�ȑO�̑����]���Łj�����J����Ă���BC#���ꂾ���łȂ��A�R�[�h�E�G�f�B�^��f�o�b�K�Ɏ������K�v������̂ŁAVisual Studio 2010�ɑ���g���Ƃ��Ē���Ă���FVisual Studio Async CTP
*3�@���Ƃ��ƁAAsync CTP�Ɋ܂܂�Ă������̂����A���݂͒P�̂ł��_�E�����[�h�\�FTPL Dataflow
�@�ȍ~�ł́A�����A���Ȃ킿�A�ȉ���3�̔������p�^�[���ɂ��Đ������s���Ă����B
�@���̑O�ɂ܂��ATask�N���X�̔w��ɂ���C���t���I�Ȏd�g�݂ɂ��Đ������Ă������B
�@��q����悤�ɁA�������ɂ͂������̃v���O���~���O�E���f�����l�����邪�A����������ʂ��āA�����I�ɂ́A�ׁX�Ƃ����������ʂɓ������s����d�g�݂�K�v�Ƃ���B
�@�N���X���ɂȂ��Ă���^�X�N�itask�j�Ƃ������t�͂��ׁ̍X�Ƃ����������w���B���Ȃ킿�ATask�N���X�́A���̎�̏����������悭�������s���邽�߂̃C���t���������Ă���B��܂��ɂ����ƁA�} 1�Ɏ����悤�Ȃ��̂ł���B
�@�d�v�Ȃ͈̂ȉ���2�_�ł���B
�@�X���b�h�̐V�K�쐬��b�N�́A���\�I�ȃR�X�g���傫���A������ׂ����̂ł���B
�@�^�X�N���s�p�̃X���b�h�́ACPU�̃R�A���ɂ҂�����̐������̂��ł��������悢�B����ȏ�̐��̃X���b�h������Ă��A�X���b�h�̐�ւ����ׂ����܂邾���ŁACPU�̗��p�����͏オ��Ȃ��B�����ŁATask�N���X�����ł́A�^�X�N����������L���[�ɂ��߂Ă����āA���X���b�h�Ɋ���U�邱�ƂŌ����I�Ƀ^�X�N�����s����B
�@�����ŁA�L���[�͕����̃X���b�h����Q�Ƃ���邽�߁A�H�v�Ȃ��ł́A�^�X�N�̒lj��^���o���Ƀ��b�N��K�v�Ƃ���BTask�N���X�����ɂ����āA�^�X�N���s�p�̃X���b�h�����ꂼ��ʌɃ��[�J���E�L���[�������Ă���̂́A���̃��b�N������邽�߂ł���B
�@�f�[�^����idata parallelism�j�́A���͂��ꂽ�f�[�^��̊e�v�f�ɑ��āA�����������J��Ԃ��K�p���Ă����������@�ł���B�} 2�Ɏ����悤�ɁA������CPU�R�A�œ����������s�����ƂŁA�v�Z�ɂ����鎞�Ԃ��팸���邽�߂ɍs���B
�@�} 3�̂悤�ɁA�����ΏۂƂȂ�f�[�^��̊e�v�f���Ɨ����Ă��āA�݂��Ɋ�������Ȃ��ꍇ�A���͔��ɊȒP�ł���B
�@C#�̏ꍇ�Afor�X�e�[�g�����g���g�������̂Ȃ�A���X�g 1�Ɏ����悤�ɁAParallel�N���X�iSystem.Threading.Tasks���O��ԁj��For���\�b�h�ɒu�������邾����*4�B
*4�@�������A���ɂ͑傫�ȃI�[�o�[�w�b�h�������邽�߁A�������ȑf�ŁA���A�v�f�������Ȃ��ꍇ�ɕ�����Ƃ������Ēx���Ȃ�B�����̏ꍇ�A���������x�̃f�[�^�ʂł͕�����Ӗ����Ȃ��B
// �P��X���b�h���s
for (int i = 0; i < ����.Length; i++)
{
var x = ����[i];
var y = ����1(x);
var z = ����2(y);
�o��[i] = z;
}
// ������s
Parallel.For(0, ����.Length, i =>
{
var x = ����[i];
var y = ����1(x);
var z = ����2(y);
�o��[i] = z;
});
�@�܂��AC# 3.0�ȍ~��LINQ���g���ꍇ�A����ɊȒP�ŁA���X�g 2�Ɏ����悤�ɁA�uAsParallel�v�i��ParallelEnumerable�N���X�iSystem.Linq���O��ԁj�Œ�`���ꂽ�g�����\�b�h�j��t���邾���ł���B
// �P��X���b�h���s
var �o��1 = ����.Select(����1).Select(����2);
// ������s
var �o��2 = ����.AsParallel().Select(����1).Select(����2);
����������ꍇ1�F �������Ɛ���
�@�������A�O�q�̂悤�ȍK���ȃP�[�X�͂��������Ȃ��B���������邢�����̗v��������B������₷���͓̂������Ɛ��K�v�ȏꍇ�ł���B�} 4�̂悤�ȏ��l���Ă݂悤�B
�@�܂��A�ʃX���b�h�̌v�Z���ʂ��K�v�ɂȂ�悤�Ȍp������������ꍇ�A�ʃX���b�h�����̊����҂���A�������݂�����������邽�߂̃��b�N���K�v�ł���B
�@�܂��A�������s�����ꍇ�A���������̕ۏ��ł��Ȃ��B���̂��߁A�����̕ۏ��K�v�ȏꍇ�ɂ́A�S�Ă̏�������������̂�҂��������ŁA���ג����K�v������B
�@�����́A�lj��̃I�[�o�[�w�b�h�ނ��߁A���ɂ�鐫�\�����j�Q����B�܂��A�������́A�f�b�h�E���b�N�ȂǁA�v���I�ȃo�O�݂₷���B���ɁA�����ɋN������o�O�͍Č������Ⴍ�A�e�X�g�ł̔������R���\��������A���Ɋ댯�ł���B
����������ꍇ2�F I/O�o�E���h
�@�S�f�[�^�����C���E��������ɏ���Ȃ��悤�ȋ���f�[�^����������ꍇ�ACPU�����A�X�g���[�W�i���n�[�h�f�B�X�N��SSD�Ȃǂ́A�s�������̋L�����u�j�̐��\���l�b�N�ɂȂ邱�Ƃ������B
�@�܂��A����f�[�^�̏ꍇ�A������̃R���s���[�^�ŕ��U���ĕ������邱�Ƃ��l�����邪�A���̏ꍇ�̓R���s���[�^�Ԃ̒ʐM���l�b�N�ƂȂ�B
�@�X�g���[�W�ɂ���l�b�g���[�N�ɂ���A�v�Z���̂ł͂Ȃ��AI/O�̐����ɂ���Đ��\�̏�������܂��ނ̏����͑����B���̏�����A�uI/O�ɑ��x�������Ă���v�Ƃ����Ӗ��ŁA�uI/O�o�E���h�iI/O bound�j�v�Ƃ����B
�@I/O�o�E���h�ȏ����̏ꍇ�A�A�v���P�[�V�����̃��x���Ő��\���P��}��̂͋ɂ߂č���BOS���x���A�~�h���E�F�A�E���x���ł̑Ή��iHadoop��Windows HPC Server�Ȃǁj���K�v�ł���B
�@�����Ď��̃y�[�W�ł́A������t���[���������B
Copyright© Digital Advantage Corp. All Rights Reserved.