我有一个c#多线程蒙特卡罗模拟,应用程序已经结构化,可以分成独立执行的任务,TaskController执行任务,聚合中间结果,检查收敛(提前终止标准)然后返回最终结果,目前使用ThreadPool实现.
我想利用多台计算机来辅助计算.我没有使用IIS的批准或基础设施(这是政策不会改变)但我可以使用例如WCF与NetTcpBinding端点绑定,我已经测试了跨服务器的这种通信,它具有适当的权限和工作.
首先,我想有一个主exe(控制台应用程序)和其他服务器上的几个从属作为专用工作者(如果这些是exes?或Windows服务?),最终我可以将这个设置在数百个工作站上运行(以及在空闲时间(或屏幕保护程序处于活动状态时)公司内部作为服务器).
我自己可以写这个,但我必须处理通信,1,2路?提前终止(中间收敛结果检查),取消不再需要的任务,部署工作,发现可用和现成的机器以便部署工作,如果工作站不再闲置,则限制/暂停工作?分布式系统中的其他所有内容?
主人(任务控制人员)应该知道所有奴隶工人的地址(ip)并告诉他们做什么工作(如果他们可用),或者奴隶工人是否只知道主地址并在他们处于有效位置时请求工作这样做,或沟通应该双向流动?这将是一个24小时制的时钟,每天开始大约9次运行,以支持不同的业务区域.
我正在寻找.net网格/分布式库的建议,可以提供帮助和一些建筑建议.
更新
有没有人使用以下任何一种?
http://www.digipede.net/ (commercial)
http://www.gridbus.org/~alchemi/
http://ngrid.sourceforge.net/
http://www.osl.iu.edu/research/mpi.net/
Run Code Online (Sandbox Code Playgroud)
或者使用来自.net的JavaSpaces,Jini或者找到了等效的.net技术
http://java.sun.com/developer/technicalArticles/tools/JavaSpaces/
http://www.jini.org
Run Code Online (Sandbox Code Playgroud)
谢谢
在工作中,我必须使用ClearCase v7.0.1.2和ClearQuest v7.0.1.0与Visual Studio 2008 SP1.我在Windows XP SP2上运行.
我已经做了一些搜索,但还没有找到官方安装程序,任何人都可以建议(提供链接)最好的插件/插件安装Visual Studio 2008集成?
谢谢
我有一个当前部署在我们的生产服务器上的EXE(c#.net 2).我继承了对此应用程序进行一些更改并重新部署的任务.
我没有写这个应用程序,我已经指出了几个不同的网络驱动器上的几个不同的文件夹与几个不同的Visual Studio解决方案(~10),这是该应用程序的各种咒语随着时间的推移,可能是Visual Studio项目的竞争者用于生成此exe但我不知道哪个项目与生产EXE匹配.
有没有办法使用.net Reflector或其他工具来确定源文件在用于编译EXE时所处的原始文件路径,然后我可以向后工作以确定正确的Visual Studio解决方案并开始在那里进行更改.
谢谢
我有一个长期运行的控制台应用程序,运行数百万次迭代.我希望在迭代次数增加时,如果内存使用量逐渐增加,我会进行基准测试.
最好的方法是什么?
我想我真的只需要关注运行期间的峰值内存使用情况吗?我基本上需要弄清楚在给定服务器上的内存的情况下,我可以在此硬件上运行的最大迭代次数.
我将设置批量运行并在不同的交互大小上记录结果,然后绘制结果图以确定内存使用趋势,然后可以针对任何给定的硬件进行外推.
寻找关于实现这个的最佳方法的建议,使用什么.net方法,类或者我应该使用外部工具.这篇文章http://www.itwriting.com/dotnetmem.php建议我应该通过代码来描述我自己的应用程序,以分析.net运行时在盒子上的其他应用程序中使用的共享内存.
谢谢
我想在运行时切换进程的可见性,我有一个Windows窗体应用程序,通过一个进程启动默认隐藏的另一个控制台应用程序但我想允许管理员用户通过复选框切换此状态并显示控制台应用程序他们选择.
我有这个,但它不起作用:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
ProcessWindowStyle state = cvarDataServiceProcess.StartInfo.WindowStyle;
if (state == ProcessWindowStyle.Hidden)
cvarDataServiceProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
else if (state == ProcessWindowStyle.Normal)
cvarDataServiceProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
}
Run Code Online (Sandbox Code Playgroud) 我是承包商/自由职业者.在大多数客户端站点,很多网站都被阻止了.特别是Gmail和Facebook,我真的想在转让时访问.
我知道有很多代理/匿名者网站,允许您使用他们的网站来规避网站过滤业务IT策略,但大多数这些网站包含恶意软件,令人反感的图像,并在我目前正在分配的任何地方被阻止.
我拥有多个域名,并希望编写自己的代理/匿名者并将其托管在其中一个域上,以便我在客户端网站上访问Gmail和Facebook.网址低调,流量低,所以不应该被阻止,我现在已经可以访问网址了.
我将如何为此编写代码?如果我可以在我的网络服务器上运行任何开源项目或应用程序,这将给我这个功能,我很乐意这样做/购买此产品.
我目前有共享托管,但如有必要,会考虑专用/虚拟.
为使这项工作,我需要考虑哪些事项?我不介意花钱,时间让这个工作,因为我决定在可预见的未来保持合同,这将使我受益匪浅.
谢谢.
我知道写这个可能很难,但任何人都可以发布一些代码链接作为起点吗?我试过搜索但找不到任何东西,我真的不确定要使用哪些搜索词.
我有一个双值"vals"数组,我需要随机索引到这个数组并获得一个值.GenRandomNumber()返回0和1,但从来没有0或1.我使用Convert.ToInt32基本上得到一切我小数点左边的数字,但必须有这样做的更有效的方法?
这是我的代码:
public double GetRandomVal()
{
int z = Convert.ToInt32(GenRandomNumber() * (vals.Length));
return vals[z];
}
Run Code Online (Sandbox Code Playgroud)
谢谢
更新
感谢所有回复的人,但我不得不使用提供方法rand.NextDouble()的MersenneTwister随机数实现
更新2
再考虑一下,我需要做的就是生成0和array.length-1之间的随机数,然后使用它随机索引到数组中.vals长度为2 ^ 20 = 1048576,因此生成随机int就足够了.我注意到我的MersenneTwister有一个方法:
public int Next(int maxValue)
Run Code Online (Sandbox Code Playgroud)
如果我把它称为vals [rand.Next(vals.length-1)]那应该做对吗?我也看到MersenneTwister有一个构造函数:
public MersenneTwister(int[] init)
Run Code Online (Sandbox Code Playgroud)
不知道这是为了什么,我可以用它来预先填充我提供0到vals.length数组的可接受的随机数吗?
FYI vals是一个长度为1048576的双重数组,用于划分正态分布曲线.我基本上使用这种机制来尽可能快地创建正态分布的数字,monte carlo模拟每天使用数十亿个正态分布的随机数,所以每一点都有帮助.
在我工作的银行中,所有客户端工作站安装了.Net 2,它不受我的控制,影响或获得在客户端安装的更新版本的框架.在服务器端,我有更多的控制权,如果我选择,可以编写.Net 3.5 WCF服务.
我有一个现有的胖客户端,我想重构并将其数据访问代码(Oracle Odp.net)转移到服务后面的服务器(以消除客户端工作站对Oralce 10g客户端的依赖).
我的问题是,如果我把这个数据层放在WCF服务后面,我可以从客户端的.Net 2.0 GUI应用程序访问它吗?或客户端工作站是否也需要.net 3.0/3.5?
除了我的开发机器上的几个原型应用程序连接到具有.Net 3.5 SP1的Windows 2003 Server之外,我没有使用过WCF,所以我正在寻找建议.
另一个考虑因素是IIS被认为是该银行的红灯技术(禁止未经许可)
更新
我在控制台应用程序中运行了我的WCF服务,当它接收并处理呼叫时,我回显到控制台输出.在我的客户端.net 2结束时,我选择了添加Web引用并拨打电话.但是我收到一个错误,即使我收到错误,仍然在服务器端生成了控制台输出的回显,因此收到的信息不正确.错误是:
例外:基础连接已关闭:接收时发生意外错误.
内部异常:无法从传输连接读取数据:远程主机强制关闭现有连接.
如何解决这个问题?
我正在寻找可以在我的共享主机上安装的基于ASP.net或PHP的webmail应用程序.
由于Gmail在工作中被阻止,我想在我的某个域中为我的Gmail地址设置此项.
我希望界面尽可能与Gmail类似,会话视图,标签,已加星标的电子邮件等,如果可能的话,至少可以让我继续使用我的GTD工作流程.
有什么建议?
我有以下声明:
SELECT
IMPORTID,Region,RefObligor,SUM(NOTIONAL) AS SUM_NOTIONAL
From
Positions
Where
ID = :importID
GROUP BY
IMPORTID, Region,RefObligor
Order BY
IMPORTID, Region,RefObligor
Run Code Online (Sandbox Code Playgroud)
表中存在一些额外的列Positions,我想作为"显示数据"的输出,但我不希望在group by语句中.
这些是 Site, Desk
最终输出将包含以下列:
IMPORTID,Region,Site,Desk,RefObligor,SUM(NOTIONAL) AS SUM_NOTIONAL
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望数据排序如下:
Order BY
IMPORTID,Region,Site,Desk,RefObligor
Run Code Online (Sandbox Code Playgroud)
怎么做到这一点?